SUSE Multi-Linux Manager 以虚拟机形式部署代理 - KVM

本章提供 SUSE Multi-Linux Manager 5.1 代理作为映像的虚拟机设置。 KVM 将与虚拟机管理器 (virt-manager) 结合使用,作为此安装的沙箱。

1. 可用映像

部署 SUSE Multi-Linux Manager 代理的首选方法是使用以下可用映像之一。 所有工具都包含在这些映像中,简化了部署。

SUSE Multi-Linux Manager 5.1 代理的映像可在 SUSE Multi-Linux Manager 5.1 虚拟机映像 中获得。

仅为SUSE Multi-Linux Manager 5.1提供定制的SL Micro 6.1虚拟机镜像。 要在SUSE Linux Enterprise Server 15 SP7上运行该产品,请使用在 https://www.suse.com/download/sles/处提供的标准SUSE Linux Enterprise Server 15 SP7安装介质,并在其上启用SUSE Multi-Linux Manager 5.1扩展。

Table 1. 可用代理映像
体系结构 映像格式

aarch64

qcow2, vmdk

x86_64

qcow2, vmdk, raw, 自安装程序

2. 虚拟机管理器 (virt-manager) 设置

使用 virt-manager 创建新虚拟机时请输入以下设置。

此表指定了最低要求。 这些适合快速测试安装,例如一个客户端的代理。

如果您想使用生产环境并需要有关磁盘空间的背景信息,请参见 硬件要求

KVM 设置

安装方法

导入现有磁盘映像

OS:

Linux

版本:

SUSE Multi-Linux Manager-Proxy.x86_64-5.1.*.qcow2

内存:

最小值 *)

处理器:

最小值 *)

存储格式:

.qcow2 40 GB(默认)根分区

名称:

测试设置

网络

桥接 br0

/var/lib/containers/storage/volumes
最少 100 GB。 应根据您将使用的 .iso 映像、容器和引导储存库的数量来计算存储要求。

3. 初始 KVM 设置

有关设置,请参见 虚拟机管理器 (virt-manager) 设置

过程:升级创建初始设置
  1. 使用下载的 Minimal KVM 映像创建一个新虚拟机,并选择 Import existing disk image

  2. 配置 RAM 和 CPU 数量(至少 16 GB RAM,4 个 CPU)。

  3. 为您的 KVM 机器命名并选中 Customize configuration before install 复选框。

  4. 单击 开始安装 以从映像引导。

  5. 在 JeOS 首次引导屏幕上选择“开始”以继续。

    jeos firstboot
  6. 选择键盘布局。

    select keyboard
  7. 接受许可协议。

    accept license agreement
  8. 选择您的时区。

    enter timezone
  9. 输入 root 口令。

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

  11. 继续阅读下一节。

4. 注册 SL Micro 和 SUSE Multi-Linux Manager,5.1 代理

过程:升级正在注册 SL Micro 和 SUSE Multi-Linux Manager,5.1 代理
  1. 引导虚拟机。

  2. root 身份登录。

  3. 使用 SCC 注册 SL Micro。

    transactional-update register -r <REGCODE> -e <your_email>
  4. 重引导。

  5. 注册 SUSE Multi-Linux Manager 5.1 代理,使用 SUSE Customer Center。

    transactional-update register -p Multi-Linux-Manager-Proxy/5.1/x86_64 -r <REGCODE>
  6. 重引导。

  7. 更新系统:

    transactional-update
  8. 如果已应用更新,请重引导。

  9. 该步骤可选。 但是,如果您的基础设施需要自定义的永久性存储,请使用 mgr-storage-proxy 工具。

    • 有关详细信息,请访问 mgr-storage-proxy --help。 该工具简化了创建容器卷的过程。

    • 如下所示使用命令:

      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. 生成代理配置

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 作为代理证书的密钥。

6.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. 片刻之后,您将看到一个可供下载的文件。 请将此文件保存在本地。

6.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 .

6.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 .

7. 传输代理配置

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

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

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

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

8. 启动 SUSE Multi-Linux Manager 5.1 代理

现在可以使用 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

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

默认情况下,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

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