第 4 章 将隔离节点迁移到执行节点
从版本 1.x 升级到最新版本 Red Hat Ansible Automation Platform 需要平台管理员将数据从隔离的旧节点迁移到执行节点。这个迁移是部署自动化网格所必需的。
本指南介绍了如何对外迁移进行并排迁移。这样可确保在迁移过程中不会修改原始自动化环境中的数据。
迁移过程涉及以下步骤:
- 验证升级配置。
- 备份原始实例。
- 为并行升级部署新实例。
- 使用 ansible 控制器在新实例中重新创建实例组。
- 将原始备份恢复到新实例。
- 设置执行节点,并将实例升级到 Red Hat Ansible Automation Platform 2.4。
- 配置升级的控制器实例。
4.1. 升级 Ansible Automation Platform 的先决条件 复制链接链接已复制到粘贴板!
在开始升级 Ansible Automation Platform 前,请确保您的环境满足以下要求。
4.1.1. 节点要求 复制链接链接已复制到粘贴板!
Ansible Automation Platform 升级过程涉及的节点需要以下规格:
- 16 GB RAM,控制器节点、数据库节点、执行节点和跃点 (hop) 节点。
- 4 个 CPU,用于控制器节点、数据库节点、执行节点和跃点节点。
- 数据库节点有 150 GB+ 磁盘空间。
- 非数据库节点有 40 GB+ 磁盘空间。
- DHCP 保留使用无限租期来部署集群使用静态 IP 地址。
- 所有节点的 DNS 记录。
- 为所有节点安装 Red Hat Enterprise Linux 8 或更高的 64 位版本(x86)。
- 为所有节点配置 chrony。
- Python 3.9 或更高版本,用于所有内容依赖项。
4.1.2. 自动化控制器配置要求 复制链接链接已复制到粘贴板!
在进行 Ansible Automation Platform 升级过程前,需要以下自动化控制器配置:
使用 Chrony 配置 NTP 服务器
集群中的每个 Ansible Automation Platform 节点都必须有权访问 NTP 服务器。使用 chronyd 将系统时钟与 NTP 服务器同步。这样可确保如果节点间的日期和时间没有同步,则使用需要验证的 SSL 证书的集群节点不会失败。
这对升级的 Ansible Automation Platform 集群中使用的所有节点都需要:
安装
chrony:dnf install chrony --assumeyes
# dnf install chrony --assumeyesCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
使用文本编辑器打开
/etc/chrony.conf。 找到公共服务器池部分,并将其修改为包含相应的 NTP 服务器地址。只需要一个服务器,但建议使用三个服务器。添加 'iburst' 选项以加快与服务器同步所需的时间:
Use public servers from the pool.ntp.org project. Please consider joining the pool (http://www.pool.ntp.org/join.html).
# Use public servers from the pool.ntp.org project. # Please consider joining the pool (http://www.pool.ntp.org/join.html). server <ntp-server-address> iburstCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
在
/etc/chrony.conf文件中保存更改。 启动主机并启用
chronyd守护进程:systemctl --now enable chronyd.service
# systemctl --now enable chronyd.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 验证
chronyd守护进程状态:systemctl status chronyd.service
# systemctl status chronyd.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
在所有节点上附加红帽订阅
Red Hat Ansible Automation Platform 要求您将有效的订阅附加到所有节点。您可以运行以下命令来验证当前节点是否具有红帽订阅:
subscription-manager list --consumed
# subscription-manager list --consumed
如果没有附加到节点的红帽订阅,请参阅 附加 Ansible Automation Platform 订阅 以了解更多信息。
创建具有 sudo 权限的非 root 用户
在升级 Ansible Automation Platform 前,建议为部署过程创建一个具有 sudo 权限的非 root 用户。此用户用于:
- SSH 连接。
- 在安装过程中进行免密码身份验证。
- 权限升级(sudo)权限。
以下示例使用 ansible 命名此用户。在升级的 Ansible Automation Platform 集群的所有节点上,创建一个名为 ansible 的非 root 用户,并生成 SSH 密钥:
创建非 root 用户:
useradd ansible
# useradd ansibleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 为您的用户设置密码:
passwd ansible
# passwd ansible1 Changing password for ansible. Old Password: New Password: Retype New Password:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 如果使用其他名称,将
ansible替换为第 1 步中的非 root 用户
以用户身份生成
ssh密钥:ssh-keygen -t rsa
$ ssh-keygen -t rsaCopy to Clipboard Copied! Toggle word wrap Toggle overflow 进行以下操作,以使用户在使用
sudo时无需输入密码:echo "ansible ALL=(ALL) NOPASSWD:ALL" | sudo tee -a /etc/sudoers.d/ansible
# echo "ansible ALL=(ALL) NOPASSWD:ALL" | sudo tee -a /etc/sudoers.d/ansibleCopy to Clipboard Copied! Toggle word wrap Toggle overflow
将 SSH 密钥复制到所有节点
创建 ansible 用户后,将 ssh 密钥复制到升级 Ansible Automation Platform 集群中使用的所有节点上。这样可确保 Ansible Automation Platform 安装运行时,它可以在没有密码的情况下 ssh 到所有节点:
ssh-copy-id ansible@node-1.example.com
$ ssh-copy-id ansible@node-1.example.com
如果在云供应商中运行,您可能需要创建一个 ~/.ssh/authorized_keys 文件,其中包含所有节点上的 ansible 用户的公钥,并将权限设置为 authorized_keys 文件,使只有所有者(ansible)具有读写权限(权限 600)。
配置防火墙设置
在升级的 Ansible Automation Platform 集群的所有节点上配置防火墙设置,以允许访问成功 Ansible Automation Platform 升级的适当服务和端口。对于 Red Hat Enterprise Linux 8 或更高版本,启用 firewalld 守护进程以启用所有节点所需的访问权限:
安装
firewalld软件包:dnf install firewalld --assumeyes
# dnf install firewalld --assumeyesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 启动
firewalld服务:systemctl start firewalld
# systemctl start firewalldCopy to Clipboard Copied! Toggle word wrap Toggle overflow 启用
firewalld服务:systemctl enable --now firewalld
# systemctl enable --now firewalldCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.1.3. Ansible Automation Platform 配置要求 复制链接链接已复制到粘贴板!
在进行 Ansible Automation Platform 升级过程前,需要以下 Ansible Automation Platform 配置:
配置执行和跃点节点的防火墙设置
升级 Red Hat Ansible Automation Platform 实例后,在网格节点上添加自动化网格端口(execution 和 hop 节点)以启用自动化网格功能。用于所有节点上的网格网络的默认端口为 27199/tcp。您可以将网格网络配置为使用不同的端口,方法是将 recptor_listener_port 指定为清单文件中每个节点的变量。
在跃点和执行节点中,设置用于安装的 firewalld 端口。
确保
firewalld正在运行:sudo systemctl status firewalld
$ sudo systemctl status firewalldCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将
firewalld端口添加到控制器数据库节点(例如,端口 27199):sudo firewall-cmd --permanent --zone=public --add-port=27199/tcp
$ sudo firewall-cmd --permanent --zone=public --add-port=27199/tcpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重新加载
firewalld:sudo firewall-cmd --reload
$ sudo firewall-cmd --reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow 确认端口已打开:
sudo firewall-cmd --list-ports
$ sudo firewall-cmd --list-portsCopy to Clipboard Copied! Toggle word wrap Toggle overflow