注册 Ubuntu 16.04 和 18.04 客户端

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

SUSE Manager 支持使用 Salt 的 Ubuntu 16.04 LTS、18.04 LTS 和 20.04 LTS 客户端。有关注册运行 Ubuntu 20.04 的 Salt 客户端的信息,请参见 注册 Ubuntu 20.04 客户端

Canonical 未授权也不支持 SUSE Manager。

Ubuntu 仅在作为 Salt 客户端的情况下受支持, 作为传统客户端时不受支持。

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

1. 添加软件通道

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

此过程所需的产品包括:

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

Ubuntu 16.04

Ubuntu 16.04

Ubuntu 18.04

Ubuntu 18.04

使用 WebUI 添加 Ubuntu 18.04 通道时,您还需按 Ubuntu 通道 - CLI 中所述使用 CLI 添加 ubuntu-1804-amd64-main 和 ubuntu-1804-amd64-main-updates 通道。

Ubuntu 16.04 的生命周期现已结束,储存库中提供的 ISO 映像已过时。使用这些软件包引导新的 Ubuntu 16.04 客户端将会失败。如果您需要引导新的 Ubuntu 16.04 客户端,请按照 对客户端查错 中的查错过程操作。

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

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

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

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

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

Ubuntu 16.04

ubuntu-16.04-pool-amd64

Ubuntu 18.04

ubuntu-18.04-pool-amd64

Ubuntu 16.04 的生命周期现已结束,储存库中提供的 ISO 映像已过时。使用这些软件包引导新的 Ubuntu 16.04 客户端将会失败。如果您需要引导新的 Ubuntu 16.04 客户端,请按照 对客户端查错 中的查错过程操作。

Ubuntu 16.04 的生命周期现已结束,储存库中提供的 ISO 映像已过时。使用这些软件包引导新的 Ubuntu 16.04 客户端将会失败。如果您需要引导新的 Ubuntu 16.04 客户端,请按照 对客户端查错 中的查错过程操作。

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

    spacewalk-common-channels \
    <基础通道标签>
    <子通道标签 1> \
    <子通道标签 2> \
    ... <子通道标签 n>
  2. 同步通道:

    spacewalk-repo-sync -p <基础通道标签>
  3. 确保同步已完成,然后再继续操作。

Table 3. Ubuntu 通道 - CLI
操作系统版本 主要通道 安全通道 更新通道

Ubuntu 16.04

ubuntu-1604-amd64-main

ubuntu-1604-amd64-security

ubuntu-1604-amd64-updates

Ubuntu 18.04

ubuntu-1804-amd64-main

ubuntu-1804-amd64-main-security

ubuntu-1804-amd64-main-updates

默认情况下,使用此方法添加的通道不会定期同步。您可以使用 SUSE Manager Web UI 配置同步日程安排。导航到软件  管理  通道,单击您添加的通道,然后选择储存库  同步子选项卡。选择每日或每周同步日程安排,然后单击 日程安排

spacewalk-common-channels 提供的客户端工具通道来自 Uyuni 而非 SUSE。

2. 检查同步状态

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

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

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

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

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

3. 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 文件中去除该行。

4. 注册客户端

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

mgr-create-bootstrap-repo

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

5. 查错:安装 spacecmd Ubuntu 18.04 客户端

使用默认配置设置安装 spacecmd 可能会失败,并显示以下错误:

未满足以下软件包的依赖关系:
    spacecmd:依赖项:python3-rpm,但它无法安装

python3-rpm 是 Ubuntu 通用储存库的一部分。要使此软件包可用,请在客户端上启用通用储存库。

过程:启用通用储存库
  1. 在 Ubuntu 18.04 客户端上,打开 /etc/apt/sources.list 文件,并取消注释通用储存库。

  2. 执行 apt-get update 命令。

现在可安装 spacecmd