使用Ubuntu系统管理工具Landscape来构建离线APT仓库:第一篇

by liam zheng on 18 January 2022

Ubuntu 是开发人员、云或横向扩展应用程序最流行的 Linux 发行版,原因之一是提供长期可用且易于安装的软件升级及安全补丁。一些企业用户可能在没有互联网访问的本地网络中运行大量 Ubuntu 桌面服务器,这些机器无法访问在线的 Ubuntu APT 仓库导致无法获得和安装系统更新,从而导致网络中的机器存在安全问题。然而,借助 Ubuntu 系统管理工具 Landscape 则可以有效地解决此问题。

本系列博客将演示如何使用 Ubuntu 系统管理工具 Landscape 来构建一个离线的 APT 仓库为内网机器提供软件更新源。需要注意的是,Landscape 仍需通过代理访问互联网,但其它系统只需访问到 Landscape 来下载安全补下或软件升级。其为 apt-mirror 提供了一种替代的方法,如果您有着成百上千的 Ubuntu 桌面或服务器需要集中化管理,那么这将大幅提高您的管理效率,减少维护成本。

一、Landscape 和服务器安装

Landscape 是支持和监控大型且不断增长的桌面、服务器和云网络的最具成本效益的方式。减少团队进行基本日常管理所需的工作量。 Landscape 提供的工具可以像一台机器一样轻松地部署、监控和管理数千台 Ubuntu 机器。它通过以下方式节省时间并大规模提高安全性:

  • 自动执行日常任务
  • 接收警报以更新您指定的机器
  • 使用最新的安全补丁以保持安全
  • 单一界面管理多达40000台机器
  • 创建您自己的软件
  • 通过 API 扩展和自定义 Landscape

作为 Canonical 企业级支持服务 Ubuntu Advantage (简称“UA”)的一部分,Landscape 已包含在订阅服务中,无需额外采购。Landscape 提供10台机器的测试许可,如超过 10 台机器需要 UA 订阅,但如果您在内网内安装 Landscape On-premises,可免费管理最多 10 台机器。在您决定获得 Landscape 提供的完全自动化权限之前,您可以使用免费许可证来完成镜像和共享离线 Ubuntu APT 仓库。如并手动配置一些 APT 源,所有内部 Ubuntu 系统都能使用。 

通过下面的方法,可在 Ubuntu 18.04 上通过快速入门方法安装 Landscape,更多详细内容请参考此链接。通过访问 https://<servername> 并填写请求的信息。

sudo add-apt-repository ppa:landscape/19.10
sudo apt-get install Landscape-server-quickstart

完整操作如下:

ubuntu@vm-landscape-server:~$ sudo add-apt-repository ppa:landscape/19.10
 October 2019 release of Landscape
More info: https://launchpad.net/~landscape/+archive/ubuntu/19.10
Press [ENTER] to continue or Ctrl-c to cancel adding it.
Get:1 http://ppa.launchpad.net/landscape/19.10/ubuntu bionic InRelease [15.4 kB]
Get:2 http://ppa.launchpad.net/landscape/19.10/ubuntu bionic/main amd64 Packages [6320 B]
…
Fetched 7218 kB in 14s (526 kB/s)                                                                                                                                                                         
Reading package lists... Done
ubuntu@vm-landscape-server:~$ sudo apt-get install landscape-server-quickstart
Reading package lists... Done
Building dependency tree 
...
Processing triggers for rsyslog (8.32.0-1ubuntu4) ...
ubuntu@vm-landscape-server:~$

二、Landscape api 访问

Landscape 为大多数管理任务提供了一个简洁且易于使用的仪表板。您还可以调用 Landscape 的 API,它允许您从命令行、shell 脚本或 Python 模块执行许多 Landscape 任务。虽然离线 repos 只能通过 API 进行设置和管理,但如下所示它也相当简单。

安装 Landscape api 客户端并配置使用:

  • sudo add-apt-repository –update ppa:landscape/landscape-api
  • sudo apt-get install Landscape-api
  • 获取 api 密钥并设置环境
ubuntu@vm-landscape-server: ~$sudo add-apt-repository --update ppa:landscape/landscape-api
ubuntu@vm-landscape-server:  ~$sudo apt-get install Landscape-api

从下面截图(Landscape 网页界面) 中查找 API 密钥。

配置和测试api:

ubuntu@vm-landscape-server:~$ cat api.rc 
#!/bin/bash
export LANDSCAPE_API_KEY="6QNNH5QHK2OU7JPPS7FJ"
export LANDSCAPE_API_SECRET="SYFbvBezQQlgWx0JUrZVl6SJ51xqlO75mstHTqfQ"
export LANDSCAPE_API_URI="https://vm-landscape-server .maas/api/"
export LANDSCAPE_API_SSL_CA_FILE="/etc/ssl/certs/landscape_server_ca.crt"
ubuntu@vm-landscape-server:~$ source api.rc
ubuntu@vm-landscape-server:~$ landscape-api get- scripts
[]
ubuntu@vm-landscape-server:~$ 

三、下一步设置本地并同步

通过上面您已经安装了 Landscape 服务器和建立了 api 访问。下一步我们将进一步介绍客户端和本地仓库搭建的设置。同时,您也可以访问 Landscape网站 阅读更多内容。

或者联系我们获得更多关于 Landscape 的服务支持相关的内容。

继续阅读第二篇第三篇博客文章。

本教程由Canonical FE Mao Zhanglei 所撰写
订阅博客文章

订阅您感兴趣的主题

在提交此表格的同时,我确认已阅读和同意的隐私声明隐私政策。

查看更多内容

使用Ubuntu系统管理工具Landscape来构建离线APT仓库:第三篇

继续第二篇博客文章,现在我们将注册Landscape客户端到服务端并管理软件仓库。 使用 https注册客户端 客户端可以通过https的方式进行注册从而使用本地软件仓库。大概的操作步骤如下: sudo apt-get update sudo apt-get install landscape-client 从Landscape服务器传送/etc/ssl/certs/landscape_server_ca.crt landscape到客户端 客户端能解析到Landscape服务器的FQDN sudo landscape-config –account-name standalone –url https://<server>/message-system –ping-ur […]

使用Ubuntu系统管理工具Landscape来构建离线APT仓库:第二篇

在上一篇博客中,我们介绍了Landscape基本内容,服务器端、客户端的安装,以及API web界面的访问。现在,我们进一步介绍设置本地同步的精彩内容。 Debian系列 Linux 发行版(如 Ubuntu)使用存储库来保存可以安装在托管计算机上的软件包。虽然 Ubuntu 有任何人都可以访问的在线存储库,但您也可以在本地网络上维护自己的存储库。当您想要维护与社区存储库中的版本不同的软件包时,或者如果您有用于安装的内部软件软件包,这可能很有用。一旦您将机器添加到 Landscape 存储库配置文件,它将接管源文件。从现在开始,您将可以使用 Landscape 管理您需要的所有 apt 资源。 Repositories 及 DEB 或 ATP 对于只熟悉的 RPM 和 Y […]

Log4Shell: Log4j远程代码执行漏洞

在 Apache Log4j 2 中发现了一个影响很大的漏洞,其是一个广泛部署且被许多 Java 应用程序用于改善日志记录的软件组件。攻击者可以控制日志消息或其参数以导致应用程序执行任意代码。在 Ubuntu 中,Apache Log4j 2 打包在 apache-log4j 2 软件源包下—​​—现在已经打了修复补丁来解决上述漏洞,详情见 USN-5192-1(12 月 14 日)和 USN-5197-1(12 月 15 日)。此漏洞已分配为 CVE-2021-44228、CVE-2021-45046 和 CVE-2021-45105。 要应用全部可用的补丁到你的Ubuntu系统,可以通过 ua 命令来进行操作: $ sudo ua fix CVE-2021-44228 […]