注册 Ubuntu 20.04、22.04 和 24.04 客户端

本节包含有关注册运行 Ubuntu 20.04 LTS、22.04 LTS 和 24.04 LTS 操作系统的客户端的信息。

  • Ubuntu 20.04、22.04 和 24.04 储存库 URL 可从 SUSE Customer Center 获取

  • 软件包和元数据由 Ubuntu 而不是 SUSE 提供

  • 有关支持的产品,请参见支持表格和版本说明

SUSE Manager 支持使用 Salt 的 Ubuntu 20.04 LTS、22.04 LTS 和 24.04 LTS 客户端。

支持使用引导功能启动 Ubuntu 客户端,并执行初始状态运行,例如设置储存库和执行配置文件更新。不过,默认会禁用 Ubuntu 上的 root 用户,因此要使用引导,需要有一个具有 Python sudo 特权的现有用户。

Canonical 不为 SUSE Manager 背书,也不为其提供支持。

1. 添加软件通道

将 Ubuntu 客户端注册到您的 SUSE Manager 服务器之前,您需要添加所需的软件通道,并同步这些通道。

下面的小节中的说明通常默认使用 x86_64 体系结构。请根据情况将其替换为其他体系结构。

此过程所需的产品包括:

Table 1. Ubuntu 产品 - WebUI
操作系统版本 产品名称

Ubuntu 24.04

Ubuntu 24.04

Ubuntu 22.04

Ubuntu 22.04

Ubuntu 20.04

Ubuntu 20.04

过程:添加软件通道
  1. 在 SUSE Manager Web UI 中,导航到管理  安装向导  产品

  2. 使用搜索栏找到适用于您的客户端操作系统和体系结构的产品,然后选中相应产品。这样会自动选中所有必需的通道。此外,建议的所有通道也将选中,并且包括建议项开关会打开。单击箭头以查看相关产品的完整列表,确保您需要的所有额外产品都已选中。

  3. 单击 添加产品 并等待产品完成同步。

或者,您也可以在命令提示符处添加通道。此过程所需的通道包括:

Table 2. Ubuntu 通道 - CLI
操作系统版本 基础通道

Ubuntu 24.04

ubuntu-2404-amd64-main-amd64

Ubuntu 22.04

ubuntu-2204-amd64-main-amd64

Ubuntu 20.04

ubuntu-2004-amd64-main-amd64

过程:在命令提示符处添加软件通道
  1. 在 SUSE Manager 服务器上的命令提示符处,以 root 身份使用 mgr-sync 命令添加相应的通道:

    mgr-sync add channel <channel_label_1>
    mgr-sync add channel <channel_label_2>
    mgr-sync add channel <channel_label_n>
  2. 同步会自动启动。如果您要手动同步通道,请使用以下命令:

    mgr-sync sync --with-children <channel_name>
  3. 确保同步已完成,然后再继续操作。

2. 镜像 Ubuntu ESM 软件包

Canonical 为 Ubuntu Pro 用户和客户提供 扩展安全维护 (ESM) 软件包。这些软件包为多个操作系统组件和选定的应用程序提供更长的维护期(10 至 12 年)。

如果您从已注册到 Ubuntu Pro 的系统中提取了所需的 GPG 密钥和您的个人持有者令牌,则这些储存库还可以在 SUSE Manager 中同步。

2.1. 提取 GPG 密钥和持有者令牌

将 Ubuntu 主机注册到 Ubuntu Pro。您可以在 Ubuntu Pro 仪表板中找到自己的个人注册令牌。为此您需要创建一个 Ubuntu One 帐户

sudo apt-get install ubuntu-advantage-tools
sudo pro attach <个人令牌>

注册后,可以在 /etc/apt/auth.conf.d/90ubuntu-advantage 文件中找到持有者令牌:

machine esm.ubuntu.com/apps/ubuntu/ login bearer password <令牌>  # ubuntu-pro-client
machine esm.ubuntu.com/infra/ubuntu/ login bearer password <令牌>  # ubuntu-pro-client

将为每个储存库使用一个专用的持有者令牌。

在 SUSE Manager 中配置以下储存库:

2.2. 配置 Ubuntu ESM 储存库

使用以下 URL 创建储存库:

Table 3. Ubuntu ESM 储存库
URL 说明

https://bearer:<token>@esm.ubuntu.com/infra/ubuntu/dists/<release>-infra-updates/main/binary-<arch>/

操作系统功能更新

https://bearer:<token>@esm.ubuntu.com/infra/ubuntu/dists/<release>-infra-security/main/binary-<arch>/

操作系统安全更新

https://bearer:<token>@esm.ubuntu.com/apps/ubuntu/dists/<release>-apps-updates/main/binary-<arch>/

应用程序功能更新

https://bearer:<token>@esm.ubuntu.com/apps/ubuntu/dists/<release>-apps-security/main/binary-<arch>/

应用程序安全更新

请将 <token> 替换为您的个人持有者令牌。此外,必须将 archrelease 替换为以下值之一:

Table 4. Ubuntu ESM 体系结构和版本
体系结构 版本

amd64arm64armelarmhfi386powerpcppc64els390x

bionicfocaljammynobletrustyxenial

要让 SUSE Manager 同步储存库,必须导入相应的 GPG 密钥(ubuntu-advantage-esm-infra-trusty.gpgubuntu-advantage-esm-apps.gpg)。在已注册到 Ubuntu Pro 的系统上的 /etc/apt/trusted.gpg.d 中可以找到这些密钥。将这些文件复制到 SUSE Manager 系统,并如下所示将其导入:

mgradm gpg add /path/to/gpg.key

在已同步的 Ubuntu 父通道下创建相应的子通道。之后,便可以同步储存库了。

此处所述的过程可用于规避订阅限制 - 但是,这样会违反服务条款并可能导致法律后果。始终必须根据所用的系统数量提供足够的订阅。

3. 检查同步状态

过程:在 Web UI 中检查同步进度
  1. 在 SUSE Manager Web UI 中,导航到管理  安装向导,然后选择产品选项卡。当同步产品时,此对话框会为每个产品显示一个完成栏。

  2. 或者,您可以导航到软件  管理  通道,然后单击与该储存库关联的通道。导航到储存库选项卡,然后单击同步并选中同步状态

过程:在命令提示符处检查同步进度
  1. 在 SUSE Manager 服务器上的命令提示符处,以 root 身份使用 tail 命令检查同步日志文件:

    tail -f /var/log/rhn/reposync/<channel-label>.log
  2. 每个子通道在同步过程中都会生成自己的日志。 您需要检查所有基础通道和子通道日志文件,以确保同步已完成。

Ubuntu 通道可能会非常大。同步所需的时间可能会长达数小时。

4. 管理 GPG 密钥

安装软件包之前,客户端会使用 GPG 密钥检查这些软件包的真实性。只有可信软件才能安装在客户端上。

信任 GPG 密钥对于客户端的安全非常重要。由管理员来决定需要哪些密钥,可以信任哪些密钥。这是因为如果不信任 GPG 密钥,便无法使用软件通道,是否将通道指派给客户端取决于是否信任密钥。

有关 GPG 密钥的详细信息,请参见 GPG 密钥

5. Root 访问权限

默认会为 Ubuntu 上的 root 用户禁用 SSH 访问权限。

要想能够使用普通用户进行初始配置,您需要编辑 sudoers 文件。

自行安装版 Ubuntu 会发生此问题。如果在安装期间为默认用户授予了管理权限,则需要使用 sudo 提供口令来进行特权提升。云实例不会出现此问题,因为 cloud-init 会自动在 /etc/sudoers.d 下创建一个文件,并且无需口令即可通过 sudo 进行特权提升。

过程:向 Root 用户授予访问权限
  1. 在客户端上,编辑 sudoers 文件:

    sudo visudo

    sudoers 文件末尾添加下面一行,以向用户授予 sudo 访问权限。以在 Web UI 中引导客户端的用户的名称替换 <user>

    <user>  ALL=NOPASSWD: /usr/bin/python, /usr/bin/python2, /usr/bin/python3, /var/tmp/venv-salt-minion/bin/python

此过程无需口令便可授予 root 访问权限,而注册客户端需要提供口令。客户端成功安装后会以 root 特权运行,因此将不再需要该访问权限。客户端成功安装之后,建议您从 sudoers 文件中去除该行。

6. 注册客户端

要注册您的客户端,需要有引导储存库。默认会自动创建引导储存库,并且每天会为所有同步的产品重新生成该储存库。您可以在命令提示符处使用以下命令手动创建引导储存库:

mgr-create-bootstrap-repo

有关注册客户端的详细信息,请参见 客户端注册