将旧版 SUSE Multi-Linux Manager 服务器迁移到容器
要将旧版 SUSE Multi-Linux Manager 服务器迁移到容器,需要准备一台新计算机。
在该迁移场景中,旧版 SUSE Multi-Linux Manager 服务器(RPM 安装方式)有时也被称为_旧服务器_。
1. 要求和注意事项
1.1. 主机名
目前,该迁移过程既不支持就地迁移,也不提供主机名重命名功能。
因此,新服务器的完全限定域名 (FQDN) 将与旧版服务器保持一致。
|
迁移之后,需要更新 DHCP 和 DNS 记录以指向新的服务器。 有关详细信息,请参见 完成迁移。 |
1.2. SSL certificates
SSL certificates are needed at a later stage. If not using the self-signed generated CA and certificates, ensure you have the following before starting:
-
A certificate authority (CA) SSL public certificate. If you are using a CA chain, all intermediate CAs must also be available.
-
An SSL database private key.
-
An SSL database certificate.
All files must be in PEM format.
The hostname of the SSL server certificate must match the fully qualified hostname of the machine you deploy them on. You can set the hostnames in the X509v3 Subject Alternative Name section of the certificate. You can also list multiple hostnames if your environment requires it. Supported Key types are RSA and EC (Elliptic Curve).
|
Database SSL certificate requires |
During a migration, the server SSL certificate and CA chain are copied from the source server, meaning that only the database certificates are required
2. GPG keys
-
自信任 GPG 密钥不会被迁移。
-
仅在 RPM 数据库中可信的 GPG 密钥不会迁移。因此,使用
spacewalk-repo-sync同步通道可能会失败。 -
在完成服务器的实际迁移后,管理员必须手动将这些密钥从旧版 SUSE Multi-Linux Manager 系统迁移到容器主机。
-
将旧版 Uyuni 服务器中的密钥复制到新服务器的容器主机。
-
稍后,使用命令
mgradm gpg add <PATH_TO_KEY_FILE>将每个密钥添加到迁移的服务器。
2.1. 旧版服务器上的初始准备工作
迁移可能需要很长时间,具体时长取决于需要复制的数据量。为了减少停机时间,可以在_初始复制_、_重新复制_或_最终复制和切换_过程中多次执行迁移,同时旧版服务器上的所有服务都可以保持正常运行。
只有在最终迁移期间才需要停止旧版服务器上的进程。
对于最终复制以外的所有复制,请添加参数 --prepare,以防止自动停止旧版服务器上的服务。例如:
mgradm migrate podman <oldserver.fqdn> --prepare
-
停止 SUSE Multi-Linux Manager 服务:
spacewalk-service stop
-
停止 PostgreSQL 服务:
systemctl stop postgresql
2.2. SSH 连接准备
-
确保新 5.1 服务器上的
root已存在 SSH 密钥。如果密钥不存在,请使用以下命令创建一个:ssh-keygen -t rsa
-
新服务器上的 SSH 配置和代理应准备就绪,这样在连接旧版服务器时,就不会出现输入口令的提示。
eval $(ssh-agent); ssh-add
迁移脚本依赖新服务器上运行的 SSH 代理来建立不提示输入口令的连接。如果该代理尚未激活,请运行
eval $(ssh-agent)将其启动。然后,使用ssh-add(后跟私用密钥的路径)将 SSH 密钥添加到正在运行的代理。在此过程中,系统将提示您输入私用密钥的口令。 -
使用
ssh-copy-id将公共 SSH 密钥复制到旧版 SUSE Multi-Linux Manager 服务器 (<oldserver.fqdn>)。请将<oldserver.fqdn>替换为旧版服务器的 FQDN:ssh-copy-id <oldserver.fqdn>
SSH 密钥会被复制到旧版服务器的
~/.ssh/authorized_keys文件中。有关详细信息,请参见ssh-copy-id手册页。 -
在新服务器上与旧版 SUSE Multi-Linux Manager 服务器建立 SSH 连接,检查是否不需要口令。此外,主机指纹不得有任何问题。如果遇到问题,请从
~/.ssh/known_hosts文件中去除旧指纹。然后重试。指纹将存储在本地~/.ssh/known_hosts文件中。
2.3. 执行迁移
在规划从旧版 SUSE Multi-Linux Manager 到容器化 SUSE Multi-Linux Manager 的迁移时,请确保您的目标实例达到或超过旧版设置的规格。这包括但不限于内存 (RAM)、CPU 核心、存储空间和网络带宽。
|
SUSE Multi-Linux Manager server hosts that are hardened for security may restrict execution of files from the 例如:
在 SUSE Multi-Linux Manager 的后续更新中,相关工具将进行优化,届时无需再使用此临时解决方案。 |
2.3.1. 配置自定义永久性存储
配置永久性存储空间并非强制性要求,但这是唯一可避免在容器全盘空间用尽的情况下出现严重问题的方法。强烈建议您使用 mgr-storage-server 工具来配置自定义永久性存储空间。
有关详细信息,请参见 mgr-storage-server --help。此工具可以简化容器存储和数据库卷的创建。
如下所示使用命令:
mgr-storage-server <storage-disk-device> [<database-disk-device>]
|
设备上不得存在任何文件系统。如果存储设备上存在文件系统,命令会中止。 |
例如:
mgr-storage-server /dev/nvme1n1 /dev/nvme2n1
|
此命令将在 有关详细信息,请参见 |
2.3.2. 执行迁移
-
执行以下命令来安装新的 SUSE Multi-Linux Manager 服务器。请将
<oldserver.fqdn>替换为旧版服务器的 FQDN:mgradm migrate podman <oldserver.fqdn>
-
迁移可信 SSL CA 证书。
2.3.3. 证书的迁移
作为 RPM 的一部分安装并存储在旧版 SUSE Multi-Linux Manager 上 /usr/share/pki/trust/anchors/ 目录中的可信 SSL CA 证书将不会迁移。由于 SUSE 不会在容器中安装 RPM 软件包,因此迁移完成后,管理员必须手动从以前安装的旧版系统中迁移这些证书文件:
-
将旧版服务器中的该文件复制到新服务器。 例如,复制为
/local/ca.file。 -
使用以下命令将文件复制到容器中:
mgrctl cp /local/ca.file server:/etc/pki/trust/anchors/
2.3.4. 完成迁移
|
成功运行 要将其重定向到新的 5.1 服务器,需要在基础架构级别(DHCP 和 DNS)重命名新服务器,以使用与旧版服务器相同的 FQDN 和 IP 地址。 |
|
如果迁移过程中出现问题,可重启旧系统。请以 root 身份执行以下命令,重启 PostgreSQL 和 spacewalk 服务:
|
3. Kubernetes 准备工作
在使用 mgradm migrate 命令执行迁移之前,必须预先定义永久性卷,尤其要注意的是,迁移作业会从头开始初始化容器。
有关详细信息,请参见安装章节中关于准备这些卷的内容,具体可查看 永久性容器卷。
4. 迁移
执行以下命令安装新的 SUSE Multi-Linux Manager 服务器(请将 <oldserver.fqdn> 替换为旧版服务器的相应 FQDN):
mgradm migrate podman <oldserver.fqdn>
或
mgradm migrate kubernetes <oldserver.fqdn>
|
成功运行 |