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

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 软件集

我们建议您在使用 zypper patch 命令安装 SUSE Linux Enterprise Server 后,立即检查是否有可用的 RMT 更新。SUSE 会不断发布 RMT 的维护更新,因此可能会有更新的软件包。

2.3 在现有系统上安装

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

> sudo zypper in rmt-server

2.3.1 在 Minimal VM 上安装

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

  • 容器主机

  • 虚拟机 Guest

  • 设备库系统

  • 小型服务器映像

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

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

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

请注意,在 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 文件,其中记录了所有参数并定义了它们的默认值。您可以通过提供自己的值文件来覆盖这些值,例如:

> helm install rmtsle rmt/rmt-helm-0.1 -f myvalues-sle.yaml
:app.cronjob.mirror.schedule

类型:字符串

默认值"30 2 * * *"

说明:运行 rmt-cli mirror 命令(实际软件包镜像)的日程表

:app.cronjob.sync.schedule

类型:字符串

默认值"* 1 * * *"

说明:运行 rmt-cli sync 命令(与 SUSE 数据库同步)的日程表

:app.image.pullPolicy

类型:字符串

默认值"Always"

说明

:app.image.repository

类型:字符串

默认值"registry.suse.com/suse/rmt-server"

说明:RMT 服务器映像

:app.image.tag

类型:字符串

默认值"2.7"

说明:RMT 服务器映像标记

:app.init.image.pullPolicy

类型:字符串

默认值"Always"

说明

:app.init.image.repository

类型:字符串

默认值"registry.suse.com/suse/rmt-mariadb-client"

说明

:app.init.image.tag

类型:字符串

默认值"latest"

说明

:app.mysql.host

类型:字符串

默认值nil

说明:要连接的 MariaDB 主机(默认目标是数据库容器)

:app.scc.password

类型:字符串

默认值nil

说明:SUSE Customer Center 口令

:app.scc.username

类型:字符串

默认值nil

说明:SUSE Customer Center 用户名

:app.service.port

类型:int

默认值4224

说明:RMT 服务器端口

:app.storage.class

类型:字符串

默认值"local-path"

说明

:app.storage.size

类型:字符串

默认值"300Mi"

说明:RMT 服务器储存卷要求。其值可能因要镜像的模块数量而异。

:db.autoscaling.enabled

类型:布尔

默认值false

说明

:db.autoscaling.maxReplicas

类型:int

默认值100

说明

:db.autoscaling.minReplicas

类型:int

默认值1

说明

:db.autoscaling.targetCPUUtilizationPercentage

类型:int

默认值80

说明

:db.image.pullPolicy

类型:字符串

默认值"Always"

说明

:db.image.repository

类型:字符串

默认值"registry.suse.com/suse/rmt-mariadb"

说明:数据库映像

:db.image.tag

类型:字符串

默认值"10.5"

说明:数据库映像标记

:db.mysql.database

类型:字符串

默认值"rmt"

说明:数据库名称

:db.mysql.password

类型:字符串

默认值nil

说明:数据库口令(如未指定,则自动创建)

:db.mysql.rootPassword

类型:字符串

默认值nil

说明:数据库 root 口令(如未指定,则自动创建)

:db.mysql.user

类型:字符串

默认值"rmt"

说明:数据库用户

:db.replicaCount

类型:int

默认值1

说明

:db.storage.class

类型:字符串

默认值"local-path"

说明

:db.storage.size

类型:字符串

默认值"100Mi"

说明:数据库储存卷空间要求

:front.image.pullPolicy

类型:字符串

默认值"Always"

说明

:front.image.repository

类型:字符串

默认值"registry.suse.com/suse/rmt-nginx"

说明:Nginx 映像

:front.image.tag

类型:字符串

默认值"latest"

说明:Nginx 映像标记

:front.init.image.pullPolicy

类型:字符串

默认值"Always"

说明

:front.init.image.repository

类型:字符串

默认值"registry.suse.com/bci/bci-micro"

说明

:front.init.image.tag

类型:字符串

默认值"15.3"

说明

:front.service.port

类型:int

默认值80

说明:Nginx 服务端口

:ingress.annotations

类型:对象

默认值{}

说明

: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"

说明

:serviceAccount.annotations

类型:对象

默认值{}

说明

:serviceAccount.create

类型:布尔

默认值true

说明

:serviceAccount.name

类型:字符串

默认值""

说明

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