2 RMT 安装和配置 #
SUSE Linux Enterprise Server 15 及以上版本中包含 RMT。可以在安装 SUSE Linux Enterprise Server 的过程中直接安装 RMT,或在运行中系统上安装 RMT。安装好软件包后,请使用 YaST 执行初始配置。
将一台服务器配置为 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 软件包。选择软件时,可以在安装设置中看到软件包选项。
安装 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
|
要安装 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。假设在新安装的系统上执行此过程。
使用
rmt
模块启动 YaST。>
sudo
yast2 rmt
或者,您也可以启动 YaST,然后选择
› 。输入您的组织身份凭证。要获取您的身份凭证,请参见第 4.1 节 “镜像身份凭证”。
输入新 MariaDB 用户的身份凭证和数据库名称,然后单击
确认。如果已设置 MariaDB
root
用户的口令,您需要输入该口令。如果未设置root
的口令,系统会要求您输入一个新口令。输入 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 证书”。
如果此系统上启用了
firewalld
,请选中相应复选框打开必需的端口。图 2.2︰ 在firewalld
中启用端口 #如果现在尚未启用
firewalld
,而您打算日后启用它,可一律通过运行yast2 rmt
模块来打开相应端口。提示:微调firewalld
设置单击
,可仅打开特定网络接口的相应端口。按
继续。要查看摘要,请单击
。单击 关闭 YaST。YaST 即会启用并启动所有systemd
服务和计时器。
2.6 启用 SLP 声明 #
RMT 包含 SLP 服务描述文件 /etc/slp.reg.d/rmt-server.reg
。要启用 RMT 服务的 SLP 声明,请执行以下步骤:
如果
firewalld
正在运行,请打开相应端口并重新加载firewalld
配置:>
sudo
firewall-cmd --permanent --add-port=427/tcp success>
sudo
firewall-cmd --permanent --add-port=427/udp success>
sudo
firewall-cmd --reload校验 SLP 服务器是否已安装,如果未安装,则加以安装:
>
sudo
zypper install openslp-server启用并启动 SLP 服务:
>
sudo
systemctl enable slpd.service>
sudo
systemctl restart slpd.service