第 4 章 将隔离节点迁移到执行节点
从版本 1.x 升级到最新版本 Red Hat Ansible Automation Platform 需要平台管理员将数据从隔离的旧节点迁移到执行节点。这个迁移是部署自动化网格所必需的。
本指南介绍了如何对外迁移进行并排迁移。这样可确保在迁移过程中不会修改原始自动化环境中的数据。
迁移过程涉及以下步骤:
- 验证升级配置。
- 备份原始实例。
- 为并行升级部署新实例。
- 使用 ansible 控制器在新实例中重新创建实例组。
- 将原始备份恢复到新实例。
- 设置执行节点,并将实例升级到 Red Hat Ansible Automation Platform 2.2。
- 配置升级的控制器实例。
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
-
使用文本编辑器打开
/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). server <ntp-server-address> iburst
-
在
/etc/chrony.conf
文件中保存更改。 启动主机并启用
chronyd
守护进程:# systemctl --now enable chronyd.service
验证
chronyd
守护进程状态:# systemctl status chronyd.service
在所有节点上附加红帽订阅
Red Hat Ansible Automation Platform 要求您将有效的订阅附加到所有节点。您可以运行以下命令来验证当前节点是否具有红帽订阅:
# 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
为您的用户设置密码:
# passwd ansible 1 Changing password for ansible. Old Password: New Password: Retype New Password:
- 1
- 如果使用其他名称,将
ansible
替换为第 1 步中的非 root 用户
以用户身份生成
ssh
密钥:$ ssh-keygen -t rsa
进行以下操作,以使用户在使用
sudo
时无需输入密码:# echo "ansible ALL=(ALL) NOPASSWD:ALL" | sudo tee -a /etc/sudoers.d/ansible
将 SSH 密钥复制到所有节点
创建 ansible
用户后,将 ssh
密钥复制到升级 Ansible Automation Platform 集群中使用的所有节点上。这样可确保 Ansible Automation Platform 安装运行时,它可以在没有密码的情况下 ssh
到所有节点:
$ 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
启动
firewalld
服务:# systemctl start firewalld
启用
firewalld
服务:# systemctl enable --now firewalld
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
将
firewalld
端口添加到控制器数据库节点(例如,端口 27199):$ sudo firewall-cmd --permanent --zone=public --add-port=27199/tcp
重新加载
firewalld
:$ sudo firewall-cmd --reload
确认端口已打开:
$ sudo firewall-cmd --list-ports