SUSE Multi-Linux Manager 代理部署

本指南概述了在 SL Micro 6.1 或 SUSE Linux Enterprise Server 15 SP7 上部署 SUSE Multi-Linux Manager 5.1 代理容器的过程。 本指南假设您已经成功部署了 SUSE Multi-Linux Manager 5.1 服务器。

目前仅支持将 SL Micro 作为常规 minion(default 联系方式)。 我们也在努力将其作为 Salt SSH 客户端(salt-ssh 联系方式)进行管理。

可以将现有客户端转换为代理。 有关详细信息,请参见 启动 {productname} 代理

要成功部署新的代理,请按照以下程序操作:

过程:升级部署代理
  1. 查看硬件要求。

  2. 在服务器上同步 SL Micro 6.1 或 SUSE Linux Enterprise Server 15 SP7 父通道和代理扩展子通道。

  3. 在裸机上安装 SL Micro 或 SUSE Linux Enterprise Server。

  4. 创建带有代理扩展的 Salt 激活密钥。

  5. 使用 default 连接方法将代理启动为客户端。

  6. 生成代理配置。

  7. 将服务器中的代理配置传输到代理。

  8. 使用 {webui} 安装软件包

  9. 使用代理配置将客户端作为代理注册到 SUSE Multi-Linux Manager。

代理容器主机支持的操作系统

容器主机支持的操作系统为 SL Micro 6.1 和 SUSE Linux Enterprise Server 15 SP7。

容器主机

容器主机是配备有容器引擎(如 Podman)的服务器,允许其管理和部署容器。 这些容器包含应用程序及其基本部分,如库,但不包含完整的操作系统,从而使其轻量化。 此设置确保应用程序在不同环境中以相同方式运行。 容器主机提供这些容器所需的资源,如处理器、内存和存储。

1. 代理的硬件要求

有关部署 SUSE Multi-Linux Manager 代理的硬件要求的更多信息,请参见 installation-and-upgrade:hardware-requirements.adoc#proxy-hardware-requirements

2. 同步父通道和代理扩展子通道

本节假定您已在服务器的 管理员  设置向导  组织凭据 Web UI 下输入了您的组织凭据。 产品列在 管理员  设置向导  产品 页面上。 此通道必须在服务器上完全同步,并选择子通道 Proxy 作为扩展选项。

过程:升级同步父通道和代理扩展
  1. 在 SUSE Multi-Linux Manager Web UI 中选择 管理员  产品

  2. 在产品页面的过滤器字段中输入 SL Micro 或 SUSE Linux Enterprise Server。

  3. 接下来,在下拉列表中选择所需的体系结构。 在本示例中 x86-64。

  4. Product Description 字段中,选中 SL Micro 6.1 或 SUSE Linux Enterprise Server 15 SP7 复选框,然后使用下拉菜单选择 SUSE Multi-Linux Manager Proxy Extension 5.1 x86_64 扩展。

  5. 单击 添加产品 按钮。

  6. 等待同步完成。

3. 准备 SUSE Multi-Linux Manager 代理主机

在下面的小节中,您可以使用 SLE Micro 或 SUSE Linux Enterprise Server 来准备代理主机。

3.1. 准备 SL Micro 6.1 主机

3.1.1. 任务:下载安装媒体

过程:升级下载安装媒体
  1. 在 SL Micro 6.1 找到 安装媒体 https://www.suse.com/download/sle-micro/, 并下载相应的媒体文件。

  2. 准备 DVD 或 USB U 盘,并将下载的 .iso 映像烧录到其上以进行安装。

3.1.2. 安装 SL Micro 6.1

有关准备您的机器(虚拟或物理)的更多信息,请参见 SL Micro 部署指南

过程:升级正在安装 SL Micro 6.1
  1. 插入包含 SLE Micro 6.1 安装映像的 DVD 或 USB U盘。

  2. 引导或重引导您的系统。

  3. 使用箭头键选择 Installation

  4. 调整键盘和语言。

  5. 单击 checkbox 以接受许可协议。

  6. 单击 Next 以继续。

  7. 代理注册SL Micro 6.1 授权包含在 SUSE Multi-Linux Manager 授权中,因此不需要单独的注册代码。

  8. 单击 下一步 继续。

  9. NTP Configuration 页面上,单击 下一步

  10. Authentication for the System 页面上,输入 root 用户的密码。 单击 下一步

  11. Installation Settings 页面上,单击 安装

这结束了 SL Micro 6.1 和 SUSE Multi-Linux Manager 5.1 作为扩展的安装。

3.1.3. 更新系统

过程:升级更新系统
  1. root 身份登录。

  2. 运行 transactional-update

    transactional-update
  3. 重引导。

SL Micro 默认情况下设计为自动更新,并将在应用更新后重新启动。 然而,这种行为在 SUSE Multi-Linux Manager 环境中并不理想。 为了防止服务器上的自动更新,SUSE Multi-Linux Manager 在启动过程中禁用事务更新计时器。

如果您希望保留 SL Micro 的默认行为,请运行以下命令来启用计时器:

systemctl enable --now transactional-update.timer

要继续部署,请参见 配置自定义永久性存储

3.2. 准备 SUSE Linux Enterprise Server 15 SP7 主机

或者,您可以在 SUSE Linux Enterprise Server 15 SP7 上部署 SUSE Multi-Linux Manager。

下面的过程介绍安装过程的主要步骤。

3.2.1. 在 SUSE Multi-Linux Manager 上安装 SUSE Linux Enterprise Server 扩展

过程:升级在 SUSE Multi-Linux Manager 上安装 SUSE Linux Enterprise Server 扩展
  1. 找到并下载 SUSE Linux Enterprise Server 15 SP7 .isohttps://www.suse.com/download/sles/.。

  2. 确保您拥有宿主操作系统 (SUSE Linux Enterprise Server 15 SP7) 和扩展的注册代码

  3. 开始安装 SUSE Linux Enterprise Server 15 SP7。

    1. Language, keyboard and product selection 上选择要安装的产品。

    2. License agreement 上阅读协议并勾选 I Agree to the License Terms

  4. 代理注册

  5. 单击 Next 以继续。

    请注意,对于 SUSE Linux Enterprise Server 15 SP7,您需要在服务器上配置有效的 SUSE Linux Enterprise Server 订阅。

  6. 在屏幕 Extensions and Modules Selection 中检查以下内容:

    • {sles} Basesystem 模块

    • 容器主机

  7. 单击 下一步 继续。

  8. 完成安装。

  9. 安装完成后,以 root 身份登录。

  10. 更新系统(可选,如果在安装期间未将系统设置为自动下载更新):

    zypper up
  11. 重引导。

要继续部署,请参见 配置自定义永久性存储

4. 配置自定义永久性存储

配置永久性存储是可选的,但这是避免容器因磁盘已满而引发严重问题的唯一方法。 如果您的基础设施需要自定义的永久性存储,请使用 mgr-storage-proxy 工具。

  • 有关详细信息,请访问 mgr-storage-proxy --help。 此工具可以简化容器存储和 Squid 缓存卷的创建。

如下所示使用命令:

mgr-storage-proxy <storage-disk-device>

例如:

mgr-storage-proxy /dev/nvme1n1

此命令将在 /var/lib/containers/storage/volumes 处创建持久存储卷。

有关详细信息,请参见

5. 为代理创建激活密钥

过程:升级创建激活密钥
  1. 导航到 系统  激活密钥,然后单击 创建密钥

  2. 为代理主机创建一个激活密钥,使用 SL Micro 6.1 或 SUSE Linux Enterprise Server 15 SP7 作为父通道。 为代理主机创建激活密钥并使用 {micro} {microversion} 作为父通道。此密钥应包括所有建议的通道以及用作扩展子通道的代理。

  3. 继续以 default 客户端身份启动代理主机。

确保代理仅分配给原始供应商通道。

目前不支持分配克隆通道。

6. 将代理主机作为客户端进行引导

过程:升级启动代理主机
  1. 选择 系统  启动

  2. 填写代理主机的相关字段。

  3. 从下拉列表中选择上一步骤中创建的激活密钥。

  4. 点击 启动

  5. 等待启动过程成功完成。 检查 Salt 菜单,确认 Salt 键已列出并被接受。

  6. 如果操作系统是 SL Micro,则重启代理主机。

  7. 系统 列表中选择主机,并在所有事件结束后(若出现 SL Micro)触发第二次重启,以完成主机接入。

过程:升级更新代理主机
  1. 系统 列表中选择主机,并应用所有补丁以将其更新。

  2. 如果操作系统是 SL Micro,则重启代理主机。

7. 生成代理配置

SUSE Multi-Linux Manager 代理的配置归档由 SUSE Multi-Linux Manager 服务器生成。 每个额外的代理都需要自己的配置归档。

对于容器化的 SUSE Multi-Linux Manager 代理,您必须构建一个新的代理配置文件,然后重新部署容器以使更改生效。 这是更新设置的过程,包括 SSL 证书。

对于 Podman 部署,SUSE Multi-Linux Manager 代理的容器主机必须在生成此代理配置之前作为客户端注册到 SUSE Multi-Linux Manager 服务器。

如果使用代理 FQDN 生成的代理容器配置不是注册的客户端(如在 Kubernetes 使用案例中),系统列表中将出现一个新的系统条目。 此新条目将显示在之前输入的代理FQDN值下,并将属于`Foreign`系统类型。

外围服务器始终使用第三方 SSL 证书。 如果中心服务器为外围服务器生成了证书,则还需要为每个代理生成证书。 为此,可运行以下命令:

mgrctl exec -ti -- rhn-ssl-tool --gen-server --dir="/root/ssl-build" --set-country="COUNTRY" \
  --set-state="STATE" --set-city="CITY" --set-org="ORGANIZATION" \
  --set-org-unit="ORGANIZATION UNIT" --set-email="name@example.com" \
  --set-hostname=PROXY --set-cname="proxy.example.com"

要使用的文件为:
* /root/ssl-build/RHN-ORG-TRUSTED-SSL-CERT 作为根CA,
* /root/ssl-build/<hostname>/server.crt 作为代理证书,
* /root/ssl-build/<hostname>/server.key 作为代理证书的密钥。

7.1. 使用 Web UI 生成代理配置

过程:升级使用 Web UI 生成代理容器配置
  1. 在 Web UI 中,导航到 系统  代理配置 并填写所需数据。

  2. Proxy FQDN 字段中,键入代理的完全限定的域名。

  3. Parent FQDN 字段中,键入 SUSE Multi-Linux Manager 服务器或另一个 SUSE Multi-Linux Manager 代理的完全限定的域名。

  4. Proxy SSH port 字段中,输入 SUSE Multi-Linux Manager 代理上 SSH 服务侦听的 SSH 端口。建议保持默认值 8022。

  5. Max Squid cache size [MB] 字段中,输入 Squid 缓存允许的最大大小。 建议最多使用可用存储的 80% 来存放容器。

    2 GB 代表默认的代理 squid 缓存大小。 这需要根据您的环境进行调整。

  6. SSL certificate 选择列表中选择是否为 SUSE Multi-Linux Manager代理生成新的服务器证书或使用现有证书。 您可以将生成的证书视为 SUSE Multi-Linux Manager 内置(自签名)证书。

    然后根据所做的选择提供用于生成新证书的签名 CA 证书的路径,或者要用作代理证书的现有证书及其密钥的路径。

    服务器生成的 CA 证书存储在 /var/lib/containers/storage/volumes/root/_data/ssl-build 目录中。

    有关现有或自定义证书以及企业和中间证书概念的更多信息,请参见 导入 SSL 证书

  7. 单击 生成,以在 SUSE Multi-Linux Manager 服务器中注册新代理FQDN,并生成包含容器主机详细信息的配置归档(config.tar.gz)。

  8. 片刻之后,您将看到一个可供下载的文件。 请将此文件保存在本地。

7.2. 使用 spacecmd 和自我签名证书生成代理配置

可以使用 spacecmd 生成代理配置。

过程:升级使用 spacecmd 和自我签名证书生成代理配置。
  1. 通过 SSH 连接到您的容器主机。

  2. 执行以下命令(替换其中的服务器和代理 FQDN):

    mgrctl exec -ti 'spacecmd proxy_container_config_generate_cert -- dev-pxy.example.com dev-srv.example.com 2048 email@example.com -o /tmp/config.tar.gz'
  3. 从服务器容器复制生成的配置:

    mgrctl cp server:/tmp/config.tar.gz .

7.3. 使用 spacecmd 和自定义证书生成代理配置

可以使用 spacecmd 为自定义证书(而不是默认的自我签名证书)生成代理配置。

过程:升级使用 spacecmd 和自定义证书生成代理配置。
  1. 通过 SSH 连接到您的服务器容器主机。

  2. 执行以下命令(替换其中的服务器和代理 FQDN):

    for f in ca.crt proxy.crt proxy.key; do
      mgrctl cp $f server:/tmp/$f
    done
    mgrctl exec -ti 'spacecmd proxy_container_config -- -p 8022 pxy.example.com srv.example.com 2048 email@example.com /tmp/ca.crt /tmp/proxy.crt /tmp/proxy.key -o /tmp/config.tar.gz'
  3. 如果您的设置使用中间 CA,请同时复制该证书,并在命令中通过 -i 选项(可根据需要多次提供)包含该证书:

    mgrctl cp intermediateCA.pem server:/tmp/intermediateCA.pem
    mgrctl exec -ti 'spacecmd proxy_container_config -- -p 8022 -i /tmp/intermediateCA.pem pxy.example.com srv.example.com 2048 email@example.com /tmp/ca.crt /tmp/proxy.crt /tmp/proxy.key -o /tmp/config.tar.gz'
  4. 从服务器容器复制生成的配置:

    mgrctl cp server:/tmp/config.tar.gz .

8. 传输代理配置

Web UI会生成一个配置归档。 该归档需要在代理容器主机上可用。

过程:升级复制代理配置
  1. 如果还未执行此操作,请将上一步生成的配置归档(config.tar.gz)从服务器容器复制到服务器主机:

    mgrctl cp server:/root/config.tar.gz .
  2. 将服务器主机中的文件复制到代理主机(如果还未执行此操作):

    scp config.tar.gz <proxy-FQDN>:/root

9. 安装并启用 [package]``podman``

在使用代理前,需要在主机上存在一些软件包,并且`podman`需要处于运行状态。

过程:升级准备先决条件
  1. 在代理主机上使用以下命令安装代理:

    • podman

    • mgrpxy-bash-completion

    • suse-multi-linux-manager-5.1-x86_64-proxy-httpd-image

    • suse-multi-linux-manager-5.1-x86_64-proxy-salt-broker-image

    • suse-multi-linux-manager-5.1-x86_64-proxy-squid-image

    • suse-multi-linux-manager-5.1-x86_64-proxy-ssh-image

    • suse-multi-linux-manager-5.1-x86_64-proxy-tftpd-image

  2. 重引导系统或运行以下命令,以启动 Podman 服务:

    systemctl enable --now podman.service
  3. 在代理主机上使用以下命令安装代理:

    mgrpxy install podman config.tar.gz

10. 启动 SUSE Multi-Linux Manager 代理

现在可以使用 mgrpxy 命令启动容器:

过程:升级启动并检查代理状态
  1. 调用以下命令启动代理:

    mgrpxy start
  2. 调用以下命令检查容器状态:

    mgrpxy status

    应该会显示五个 SUSE Multi-Linux Manager 代理容器,并且它们应该属于 proxy-pod 容器 Pod:

    • proxy-salt-broker

    • proxy-httpd

    • proxy-tftpd

    • proxy-squid

    • proxy-ssh

11. 为服务使用自定义容器映像

默认情况下,SUSE Multi-Linux Manager 代理套件配置为对其每个服务使用相同的映像版本和注册表路径。 但是,可以使用以`-tag`和`-image`结尾的安装参数覆盖特定服务的默认值。

例如:

mgrpxy install podman --httpd-tag 0.1.0 --httpd-image registry.opensuse.org/uyuni/proxy-httpd /path/to/config.tar.gz

它会在重启httpd服务之前调整其配置文件,其中`registry.opensuse.org/uyuni/proxy-httpds`是要使用的镜像,`0.1.0`是版本标签。

要重置为默认值,请再次运行 install 命令但不要指定这些参数:

mgrpxy install podman /path/to/config.tar.gz

此命令首先将所有服务的配置重置为全局默认值,然后重新装载配置。