注册 Ubuntu 客户端

本节包含有关注册运行 Ubuntu 操作系统的客户端的信息。

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

  • 有关支持的产品,请参见 支持的 Ubuntu 功能 中的版本说明和支持表。

SUSE Multi-Linux Manager 支持使用 Ubuntu 的 Salt 22.04 LTS 和 24.04 LTS 客户端。

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

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

1. 添加软件通道

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

在以下部分中,描述通常默认为 x86_64 架构。 如果适用,请将其替换为其他架构。

此过程所需的产品包括:

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

Ubuntu 24.04

Ubuntu 24.04

Ubuntu 22.04

Ubuntu 22.04

过程:升级添加软件源
  1. 在 SUSE Multi-Linux Manager Web UI 中,导航到 管理员  设置向导  产品

  2. 使用搜索栏找到适用于您的客户端操作系统和体系结构的产品,并选中相应产品。 这将自动检查所有必需的软件源。 只要打开`include recommended`切换开关,所有推荐的频道都会被选中。 单击箭头以查看相关产品的完整列表,并确保您所需的任何额外产品都已选中。

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

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

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

Ubuntu 24.04

ubuntu-2404-amd64-main-amd64

Ubuntu 22.04

ubuntu-2204-amd64-main-amd64

过程:升级在命令提示符处添加软件通道
  1. 在 SUSE Multi-Linux Manager 容器主机的命令提示符处,以 root 身份添加相应的通道:

    mgrctl exec -- mgr-sync add channel <channel_label_1>
    mgrctl exec -- mgr-sync add channel <channel_label_2>
    mgrctl exec -- mgr-sync add channel <channel_label_n>
  2. 同步会自动开始。 如果您想手动同步通道,请使用:

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

2. 镜像 Ubuntu ESM 软件包

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

如果您从已注册到 Ubuntu Pro 的系统中提取所需的 GPG 密钥 和您的个人 Bearer 词元,则这些储存库还可以在 SUSE Multi-Linux Manager 中同步。

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

使用 Ubuntu Pro 注册 Ubuntu 主机。 您可以在 Ubuntu Pro Dashboard 中找到您的个人注册词元。 这需要一个 Ubuntu One 账户

sudo apt-get install ubuntu-advantage-tools
sudo pro attach <perosnal_token>

注册后,您将在文件 /etc/apt/auth.conf.d/90ubuntu-advantage 中找到 Bearer 词元:

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

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

在 SUSE Multi-Linux 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> 替换为您的个人 Bearer 词元。此外,archrelease 必须替换为以下值之一:

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

amd64arm64armelarmhfi386powerpcppc64els390x

bionic, focal, jammy, noble, trusty, xenial

为了使 SUSE Multi-Linux Manager 同步储存库,必须导入相应的 GPG 密钥 (ubuntu-advantage-esm-infra-trusty.gpg, ubuntu-advantage-esm-apps.gpg)。这些密钥位于注册了 Ubuntu Pro 的系统上,注册名为 /etc/apt/trusted.gpg.d。将这些文件复制到 SUSE Multi-Linux Manager 系统并按如下方式导入:

mgradm gpg add /path/to/gpg.key

在已同步的 Ubuntu 父通道下创建适当的子通道。之后,可以同步储存库。

此处显示的程序可用于规避订阅限制 - 然而,这构成了违反服务条款,可能会导致 法律后果。始终必须有足够的订阅以支持所使用的系统数量。

3. 检查同步状态

过程:升级通过 检查同步进度 Web UI
  1. 在 SUSE Multi-Linux Manager Web UI 中,导航到 管理员  设置向导 并选择 Products 选项卡。 产品同步时,此对话框将为每个产品显示一个完成栏。

  2. 或者,您可以导航到 软件  管理  频道,然后单击与该储存库关联的频道。 导航至`Repositories`选项卡,然后点击`Sync`并勾选`Sync Status`。

过程:升级通过命令提示符检查同步进度
  1. 要在跟踪日志前列出可用日志,请在容器主机上运行以下命令:

    mgrctl exec ls /var/log/rhn/reposync/
  2. 在 SUSE Multi-Linux Manager 容器主机的命令提示符处,以 root 用户身份检查通道日志文件的同步情况:

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

Ubuntu 通道可能非常大。 同步有时可能需要几个小时。

4. 管理 GPG 密钥

客户端使用 GPG 密钥在安装软件包之前检查其真实性。 只有受信任的软件包才能在客户端上安装。

信任 GPG 密钥对客户端的安全性至关重要。 决定需要哪些密钥并可以信任哪些密钥是管理员的任务。 由于在 GPG 密钥未被信任时无法使用软件通道,因此是否将通道分配给客户端取决于是否信任该密钥。

有关 GPG 密钥的更多信息,请参见 GPG 密钥

5. Root 访问权限

在 Ubuntu 上,root 用户默认情况下禁用了 SSH 访问。

要能够使用普通用户进行注册,您需要编辑 sudoers 文件。

此问题发生在自安装版本的 Ubuntu 中。 如果在安装时默认用户被授予了管理权限,则需要输入密码以使用 sudo 执行权限提升。 在云实例中不会发生这种情况,因为 cloud-init 会自动在 /etc/sudoers.d 下创建一个文件,并通过 sudo 授予权限提升,而无需密码。

5.1. 授予 Root 用户访问权限

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

    sudo visudo

    sudoers 文件末尾添加此行,以授予用户 sudo 访问权限。 将 <user> 替换为在 Web UI 中负责启动客户端的用户名称:

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

此过程授予 root 访问权限,无需密码,这对于注册客户端是必需的。 当客户端成功安装后,它以 root 权限运行,因此不再需要访问权限。 我们建议在客户端成功安装后,从 sudoers 文件中去除此行。

5.2. 通过 SSH 以安装期间创建的用户身份引导

要通过 SSH 引导 Ubuntu 客户端,您必须将安装期间创建的用户添加到 sudo 组。 然后从客户端运行启动脚本。

过程:升级将安装期间创建的用户添加到 sudo 组并通过 SSH 引导
  1. 在客户端上,以 root 身份从命令行运行以下命令(将 <username> 替换为安装期间创建的用户的名称):

    sudo usermod -aG sudo <username>
  2. 从命令行启动客户端系统(将 <SERVER_FQDN> 替换为 SUSE Multi-Linux Manager 服务器的完全限定的域名):

    sudo su -
    curl -Sks https://<SERVER_FQDN>/pub/bootstrap/bootstrap-script.sh | /bin/bash

Ubuntu 只能通过在客户端系统的命令行中运行相应的 Ubuntu 启动脚本来启动,前提是先执行 sudo su -。 由于 Ubuntu 上的 root 用户默认被禁用,并且 Web UI 不允许 Ubuntu 安装期间创建的用户进行权限提升,因此无法通过 SUSE Multi-Linux Manager Web UI 引导。

6. 注册客户端

要注册您的客户端,您需要一个引导储存库。 默认情况下,引导储存库会自动创建,并为所有同步的产品每天重新生成。 您可以从容器主机的命令提示符手动创建引导储存库:

mgrctl exec -ti mgr-create-bootstrap-repo

有关注册您的客户端的更多信息,请参见客户端注册