跳到内容跳到页面导航:上一页 [access key p]/下一页 [access key n]
documentation.suse.com / SUSE Linux Enterprise Server 文档 / RMT 指南 / RMT 安装和配置
适用范围 SUSE Linux Enterprise Server 15 SP6

2 RMT 安装和配置

SUSE Linux Enterprise Server 15 及以上版本中包含 RMT。可以在安装 SUSE Linux Enterprise Server 的过程中直接安装 RMT,或在运行中系统上安装 RMT。安装好软件包后,请使用 YaST 执行初始配置。

警告
警告:RMT 服务器与安装服务器冲突

将一台服务器配置为 RMT 服务器时,会安装并配置侦听端口为 80 的 NGINX Web 服务器。

而在将一台计算机配置为安装服务器时,会自动安装 Apache Web 服务器并将其配置为侦听端口 80。

请勿尝试在同一台服务器上启用这两项功能。一台服务器无法同时托管 Apache Web 服务器和 NGINX Web 服务器。

2.1 存储要求

下载的软件包存储在 /usr/share/rmt/public/repo 中,该文件是指向 /var/lib/rmt/public/repo/ 的符号链接。

RMT 服务器所需的存储空间取决于以下可变因素:您镜像的储存库和体系结构的数量以及启用的产品数量。一般来说,将存储空间设为所有已启用储存库总大小的 1.5 倍应当就已足够。其中,每个 SUSE Linux Enterprise 版本(包括所有扩展)大约 200 GB。

2.2 在系统安装期间安装

要在系统安装期间安装 RMT,请选择 rmt-server 软件包。选择软件时,可以在安装设置中看到软件包选项。

RMT 软件集
图 2.1︰ RMT 软件集

安装 SUSE Linux Enterprise Server 后,请立即使用 zypper patch 命令检查可用的 RMT 更新,因为 SUSE 会持续发布 RMT 的维护更新。

2.3 在现有系统上安装

要在运行中的 SUSE Linux Enterprise Server 系统上安装 RMT,请使用 zypper

> sudo zypper in rmt-server

2.3.1 在 SLES Minimal VM 上安装

SUSE Minimal VM 是一种专为特定使用场景而设计的可自定义极简操作系统,例如,它可充当以下不同形式的对象运行:

  • 容器主机

  • 虚拟机 Guest

  • 设备库系统

  • 小型服务器映像

SLES Minimal VM 映像非常适合作为 RMT 服务器。您可以从公共 SUSE Linux Enterprise Server 下载页面(网址为:https://www.suse.com/download/sles/)下载适用于 KVM、Xen、Microsoft Hyper-V、VMware 和 OpenStack 的 SLES Minimal VM 映像。有关 SLES Minimal VM 的详细信息,请访问 https://documentation.suse.com/smart/virtualization-cloud/html/minimal-vm/index.html

在 SLES Minimal VM 上安装 RMT 的过程与在现有系统上的安装过相同(请参见第 2.3 节 “在现有系统上安装”))。要在 SLES Minimal VM 上安装 RMT,请以 root 身份从 SLES Minimal VM 命令行运行以下命令:

# zypper install rmt-server yast2-rmt nginx mariadb
重要
重要:硬件要求

请注意,在 SLES Minimal VM 上安装 RMT 时至少需要 100 GB 磁盘空间,具体取决于您选择镜像的产品。另外还需要至少有两个内核的 CPU 以及 2 GB RAM。

2.4 在 Kubernetes 群集上部署 RMT

本节介绍如何在 Kubernetes 群集上部署 RMT。它使用 Helm 作为软件包管理器与 Kubernetes 群集交互。有关如何使用 Helm 的更多详细信息,请访问 https://helm.sh/docs/intro/using_helm/

2.4.1 先决条件

  • 运行 Kubernetes 群集

  • 配置为与群集交互的 helm 命令

2.4.2 应用程序组件

RMT 应用程序的每个组件都部署在其各自的容器中。RMT 由下列组件组成:

RMT 服务器

RMT 应用程序服务器的容器化版本,能够通过 Helm 值传递其配置。数据存储在分配到 Kubernetes 群集的卷上。您需要根据所要镜像的储存库数量调整存储空间大小。

MariaDB

RMT 的数据库后端。由于 RMT 会在启动时创建所需的数据库和表,因此无需执行安装后任务。如果未在 values.yaml 文件中指定口令,系统会自动生成口令。

Nginx

为 RMT 路由配置的 Web 服务器。正确配置 Web 服务器后,您便可将入站流量(用于 RMT)直接定向到此 Nginx 服务。您不需要配置 RMT 入站流量特定的路径处理方式,因为 Nginx 已配置为自行处理此项事宜。

2.4.3 values.yaml 文件

RMT 图表包含 values.yaml 文件,其中记录了所有参数并定义了它们的默认值。您可以通过提供自己的值文件来覆盖这些值,例如:

> cat << EOF > rmt-config.yaml
---
app:
  storage:
    class: local-path1
  scc:
    username: "UXXXXXXX"
    password: "PASSXXXX"
    products_enable:
      - SLES/15.3/x86_64
      - sle-module-python2/15.3/x86_64
    products_disable:
      - sle-module-legacy/15.3/x86_64
      - sle-module-cap-tools/15.3/x86_64
db:
  storage:
    class: local-path2
ingress:
  enabled: true
  hosts:
    - host: chart-example.local
      paths:
        - path: "/"
          pathType: Prefix
  tls:
    - secretName: rmt-cert
      hosts:
        - chart-example.local
EOF

1 2

local-path 存储类仅适用于 Rancher 工作负载。要使 helm chart 成功,您需要通过运行以下命令来安装 local-path 存储配置器:

> kubectl apply -f https://raw.githubusercontent.com/rancher/local-path-provisioner/v0.0.26/deploy/local-path-storage.yaml

要安装 RMT,请运行以下命令:

> helm install rmtsle oci://registry.suse.com/suse/rmt-helm -f rmt-config.yaml

2.4.3.1 必需的值

:app.scc.password

类型:字符串

默认值nil

说明SUSE Customer Center 代理口令。口令字符串需要用引号括住。如果引号字符 " 是字符串的一部分,则必须使用 \ 进行转义。

:app.scc.username

类型:字符串

默认值nil

说明SUSE Customer Center 代理用户名。用户名字符串需要用引号括住。如果引号字符 " 是字符串的一部分,则必须使用 \ 进行转义。

:app.scc.products_enable

类型:列表

默认值[]

说明:要启用镜像的产品列表

:app.scc.products_disable

类型:列表

默认值[]

说明:要禁用镜像的产品列表

:app.storage.class

类型:字符串

默认值""

说明:Kubernetes storageclass

:db.storage.class

类型:字符串

默认值""

说明:Kubernetes storageclass

:ingress.enabled

类型:布尔

默认值false

说明:已启用入站流量

:ingress.hosts[0]

类型:对象

默认值{"host":"chart-example.local","paths":[{"path":"/","pathType":"Prefix"}]}

说明:可以从客户端访问 RMT 服务的 DNS 名称

:ingress.tls[0].hosts[0]

类型:字符串

默认值"chart-example.local"

说明:可用于从客户端访问 RMT 服务的 DNS 名称

:ingress.tls[0].secretName

类型:字符串

默认值"rmt-cert"

说明:TLS 入站流量证书

2.5 使用 YaST 配置 RMT

按以下过程所述使用 YaST 配置 RMT。假设在新安装的系统上执行此过程。

  1. 使用 rmt 模块启动 YaST。

    > sudo yast2 rmt

    或者,您也可以启动 YaST,然后选择网络服务 › RMT 配置

  2. 输入您的组织身份凭证。要获取您的身份凭证,请参见第 4.1 节 “镜像身份凭证”

  3. 输入新 MariaDB 用户的身份凭证和数据库名称,然后单击下一步确认。

    如果已设置 MariaDB root 用户的口令,您需要输入该口令。如果未设置 root 的口令,系统会要求您输入一个新口令。

  4. 输入 SSL 证书的常用名。该常用名应为服务器的完全限定域名 (FQDN)。输入您要用来作为其他常用名连接 RMT 服务器的所有域名和 IP 地址。

    输入所有常用名后,选择下一步

    提示
    提示:RMT 的证书位置
    • /etc/rmt/ssl/rmt-ca.crt

      此为 yast2 rmt 用来验证 RMT 服务器证书的 CA 证书分发包。仅当此文件不存在时,yast2 rmt 才会创建此文件。

    • /etc/rmt/ssl/rmt-server.crt/etc/rmt/ssl/rmt-server.key

      仅当服务器证书和私用密钥不存在时,yast2 rmt 才会生成新的服务器证书和私用密钥。要重新生成此证书,请参见第 8.1 节 “重新生成 HTTPS 证书”

  5. 如果此系统上启用了 firewalld,请选中相应复选框打开必需的端口。

    在 firewalld 中启用端口
    图 2.2︰ firewalld 中启用端口

    如果现在尚未启用 firewalld,而您打算日后启用它,可一律通过运行 yast2 rmt 模块来打开相应端口。

    提示
    提示:微调 firewalld 设置

    单击防火墙细节,可仅打开特定网络接口的相应端口。

    下一步继续。

  6. 要查看摘要,请单击下一步。单击完成关闭 YaST。YaST 即会启用并启动所有 systemd 服务和计时器。

2.6 启用 SLP 声明

RMT 包含 SLP 服务描述文件 /etc/slp.reg.d/rmt-server.reg。要启用 RMT 服务的 SLP 声明,请执行以下步骤:

  1. 如果 firewalld 正在运行,请打开相应端口并重新加载 firewalld 配置:

    > sudo firewall-cmd --permanent --add-port=427/tcp
    success
    > sudo firewall-cmd --permanent --add-port=427/udp
    success
    > sudo firewall-cmd --reload
  2. 校验 SLP 服务器是否已安装,如果未安装,则加以安装:

    > sudo zypper install openslp-server
  3. 启用并启动 SLP 服务:

    > sudo systemctl enable slpd.service
    > sudo systemctl restart slpd.service