使用Ubuntu系统管理工具Landscape来构建离线APT仓库:第二篇
by liam zheng on 20 January 2022
在上一篇博客中,我们介绍了Landscape基本内容,服务器端、客户端的安装,以及API web界面的访问。现在,我们进一步介绍设置本地同步的精彩内容。
Debian系列 Linux 发行版(如 Ubuntu)使用存储库来保存可以安装在托管计算机上的软件包。虽然 Ubuntu 有任何人都可以访问的在线存储库,但您也可以在本地网络上维护自己的存储库。当您想要维护与社区存储库中的版本不同的软件包时,或者如果您有用于安装的内部软件软件包,这可能很有用。一旦您将机器添加到 Landscape 存储库配置文件,它将接管源文件。从现在开始,您将可以使用 Landscape 管理您需要的所有 apt 资源。
Repositories 及 DEB 或 ATP 对于只熟悉的 RPM 和 YUM 人可能新的。了解基本概念使命令易于使用和理解。在 sources.list 行中,您会看到:
ubuntu@vm-landscape-server:~$ egrep '^deb' /etc/apt/sources.list deb http://hk.archive.ubuntu.com/ubuntu bionic universe main restricted multiverse deb http://hk.archive.ubuntu.com/ubuntu bionic-updates universe main restricted multiverse deb http://hk.archive.ubuntu.com/ubuntu bionic-security universe main restricted multiverse deb http://hk.archive.ubuntu.com/ubuntu bionic-backports universe main restricted multiverse ubuntu@vm-landscape-server:~$
它带有以下格式:
deb http://archive.ubuntu.com/DISTRIBUTION/ SERIES-POCKET COMPONENT [COMPONENT ...]
其中:
● distribution: ubuntu ● series: bionic ( bionic is 18.04 LTS, 20.04 is focal, 22.04 is jammy which will be release on July 2022) ● pockets: release, updates, security ● components: main, restricted, universe, multiverse
理解这些概念对于通过 Landscape-api 使用 rpos 管理器很重要。在设置本地仓库时,您需要:
● 检查 root (/) 的可用磁盘空间,20.04 大约需要 120G。 ● 为本地 repos 签名创建 gpg 密钥 ● 使用landscape-api 创建distribution (ubuntu), series (focal for 20.04) and pockets ( release, updates, security) ● 一个一个地同步pockets
下面是命令和输出的示例:
生成一个gpg 密钥,在物理主机上运行而不是在虚拟机上运行。在我的情况下随机需要很长时间并且似乎从未完成,因此如果您在虚拟机上测试 Landscape 服务器,请在另一台主机上运行它。
zlmao@p14s:~$ gpg --gen-key ... Real name: landscape-server You selected this USER-ID: "landscape-server" Change (N)ame, (E)mail, or (O)kay/(Q)uit? O We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy. We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy. gpg: key C308D9A6A02FE060 marked as ultimately trusted gpg: revocation certificate stored as '/home/zlmao/.gnupg/openpgp-revocs.d/BE506AEAAAAA977F0302B161C308D9A6A02FE060.rev' public and secret key created and signed. pub rsa3072 2022-01-04 [SC] [expires: 2024-01-04] BE506AEAAAAA977F0302B161C308D9A6A02FE060 uid landscape-server sub rsa3072 2022-01-04 [E] [expires: 2024-01-04] zlmao@p14s:~$ gpg -a --export-secret-keys BE506AEAAAAA977F0302B161C308D9A6A02FE060 > mirror-key.asc
将 mirror-key.asc 传输到 Landscape server,然后执行以下步骤,请选择您所在的国家/地区镜像源 http://hk.archive.ubuntu.com/ubuntu/ 的 repos 像 cn 而不是 hk。
ubuntu@vm-landscape-server:~$ landscape-api import-gpg-key mirror-key mirror-key.asc {u'fingerprint': u'be50:6aea:aaaa:977f:0302:b161:c308:d9a6:a02f:e060', u'has_secret': True, u'id': 1, u'key_id': u'C308D9A6A02FE060', u'name': u'mirror-key'} ubuntu@vm-landscape-server:~$ landscape-api create-series --pockets release,updates,security --components main,restricted,universe,multiverse --architectures amd64 --gpg-key mirror-key.asc --mirror-uri http://hk.archive.ubuntu.com/ubuntu/ --mirror-series focal focal ubuntu {u'creation_time': u'2022-01-04T08:50:46Z', u'name': u'focal', u'pockets': [{u'apt_source_line': u'deb http://vm-landscape-server.maas/repository/standalone/ubuntu focal-updates restricted', u'architectures': [u'amd64'], u'components': [u'restricted'], u'creation_time': u'2022-01-04T08:50:46Z', u'gpg_key': {u'fingerprint': u'be50:6aea:aaaa:977f:0302:b161:c308:d9a6:a02f:e060', u'has_secret': True, u'id': 1, u'key_id': u'C308D9A6A02FE060', u'name': u'mirror-key'}, u'include_udeb': False, u'mirror_suite': u'focal-updates', u'mirror_uri': u'http://hk.archive.ubuntu.com/ubuntu/', u'mode': u'mirror', u'name': u'updates'}]} ubuntu@vm-landscape-server:~$ ubuntu@vm-landscape-server:~$ landscape-api sync-mirror-pocket updates focal ubuntu {u'activity_status': u'undelivered', u'children': [{u'activity_status': u'undelivered', u'children': [], u'completion_time': None, u'creation_time': u'2022-01-04T08:54:22Z', u'creator': {u'email': u'root@localhost', u'id': 1, u'name': u'root'}, u'id': 2, u'modification_time': u'2022-01-04T08:54:22Z', u'parent_id': 1, u'pocket_id': 1, u'pocket_name': u'updates', u'progress': 0, u'result_code': None, u'result_text': None, u'schedule_after_time': None, u'schedule_before_time': None, u'summary': u"Sync pocket 'updates' of series 'focal' in distribution 'ubuntu'", u'type': u'SyncPocketRequest'}], u'completion_time': None, u'creation_time': u'2022-01-04T08:54:22Z', u'creator': {u'email': u'root@localhost', u'id': 1, u'name': u'root'}, u'deliver_delay_window': 0, u'id': 1, u'parent_id': None, u'result_code': None, u'result_text': None, u'summary': u"Sync pocket 'updates' of series 'focal' in distribution 'ubuntu'", u'type': u'ActivityGroup'} ubuntu@vm-landscape-server:~$
检查并等待同步完成:
如果发现同步错误,请再次同步,如:
landscape-api sync-mirror-pocket updates focal ubuntu
您还可以检查和监控下载,如下所示:
ubuntu@vm-landscape-server:/var/lib/landscape/landscape-repository/standalone/ubuntu$ sudo du -sh pool/ 7.2G pool/ ubuntu@vm-landscape-server:/var/lib/landscape/landscape-repository/standalone/ubuntu$ sudo du -s pool/ 7537356 pool/ ubuntu@vm-landscape-server:/var/lib/landscape/landscape-repository/standalone/ubuntu$ sudo du -s pool/ 7544152 pool/ ubuntu@vm -landscape-server:/var/lib/landscape/landscape-repository/standalone/ubuntu$
一步一步地同步其余 pockets 如下:
- landscape-api sync-mirror-pocket security focal ubuntu
- landscape-api sync-mirror-pocket release focal ubuntu
注意:根据您的网络下载速度,第一次完全同步需要几十个小时。
本教程由Canonical FE Mao Zhanglei 所撰写。订阅博客文章
查看更多内容
新吉祥物加冕礼:Noble Numbat
无论是通过民众投票、天意还是湖中仙女赐予王者之剑,登上王位的往往是声名显赫或出身高贵的人。在我们 20 周年前夕,很高兴向大家展示 Ubuntu 24.04 LTS 的吉祥物—— Noble Numbat(尊贵的袋食蚁兽)。 低微出身 说到 “尊贵”,人们可能很难首先想到来自澳大利亚的神秘有袋类动物——袋食蚁兽。不过它们的外表非常具有欺骗性。这些不可思议的濒危物种实际上是口袋大小的食蚁兽,它们完全以蚂蚁为食,依靠身体三分之一长的舌头捕捉蚂蚁。它们的背部有着黑白相间的条纹,像极了王袍,因而被选为西澳大利亚州的象征动物。袋食蚁兽象征着出身低微也能享誉世界的人。 至高成就 同样,Ubuntu 也从构建更加人性化的 Linux 这样一个初出茅庐的梦想发展成为一个备受信赖的平台 […]
基于 MicroK8s 和 Ubuntu 实时内核支持的 Intel FlexRAN 组件自动扩展
RAN 随着每一代移动通信技术的发展而不断演变,从而在用户设备和核心网络之间实现更快的数据传输。内部互连设备数量的增多使得数据量比以往任何时候都要多。至于现有的网络架构,其挑战在于处理不断增加的工作负载,以及更快地处理、分析和传输数据的能力。而对于 5G 生态系统,则需要实现 RAN 的虚拟化。第五代移动网络需要具备更大的灵活性以适应需求,具备可扩展性以满足运行时的网络条件,以及需要自动化以进行远程管理,而这些只能通过虚拟 RAN 来实现。 Intel FlexRAN 解决了传统 RAN 架构所面临的挑战。它能够从核心网络功能中将底层硬件抽象化,以实现最佳的资源利用。FlexRAN 是 O-RAN (OpenRAN) 的改进和参考实现,具有在不同供应商设备之间进行互操作 […]
云存储安全最佳实践
使用 Ceph 的安全功能确保数据安全 如何将数据安全地存储在云存储系统中? 数据对于任何企业组织而言如同王冠上的宝石,如果丢失或暴露,可能会造成严重的影响。如果不能防止系统故障,可能会导致业务数据的丢失,从而导致业务无法正常运营,最终导致业务失败。将敏感数据暴露给未授权方不仅会导致声誉受损,还可能导致企业遭受巨额罚款。 本篇博客将详细介绍这些风险,以及如何使用 Ceph 的安全功能来减轻这些风险。首先,我们来了解一下数据泄露发生的一些最常见方式: 实物盗窃/运输 与存储相关的硬件、磁盘或整个存储系统的丢失可能导致敏感信息暴露。这可能发生在传统的入室盗窃情况下,即未经授权的一方进入数据中心并移除硬件,或者硬件在运输过程中(例如在返厂维修或更换时)被他人截获。 另一种实体危 […]