第 4 章 将隔离节点迁移到执行节点


从版本 1.x 升级到最新版本 Red Hat Ansible Automation Platform 需要平台管理员将数据从隔离的旧节点迁移到执行节点。这个迁移是部署自动化网格所必需的。

本指南介绍了如何对外迁移进行并排迁移。这样可确保在迁移过程中不会修改原始自动化环境中的数据。

迁移过程涉及以下步骤:

  1. 验证升级配置。
  2. 备份原始实例。
  3. 为并行升级部署新实例。
  4. 使用 ansible 控制器在新实例中重新创建实例组。
  5. 将原始备份恢复到新实例。
  6. 设置执行节点,并将实例升级到 Red Hat Ansible Automation Platform 2.2。
  7. 配置升级的控制器实例。

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 集群中使用的所有节点都需要:

  1. 安装 chrony

    # dnf install chrony --assumeyes
  2. 使用文本编辑器打开 /etc/chrony.conf
  3. 找到公共服务器池部分,并将其修改为包含相应的 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
  4. /etc/chrony.conf 文件中保存更改。
  5. 启动主机并启用 chronyd 守护进程:

    # systemctl --now enable chronyd.service
  6. 验证 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 密钥:

  1. 创建非 root 用户:

    # useradd ansible
  2. 为您的用户设置密码:

    # passwd ansible 1
    Changing password for ansible.
    Old Password:
    New Password:
    Retype New Password:
    1
    如果使用其他名称,将 ansible 替换为第 1 步中的非 root 用户
  3. 以用户身份生成 ssh 密钥:

    $ ssh-keygen -t rsa
  4. 进行以下操作,以使用户在使用 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 守护进程以启用所有节点所需的访问权限:

  1. 安装 firewalld 软件包:

    # dnf install firewalld --assumeyes
  2. 启动 firewalld 服务:

    # systemctl start firewalld
  3. 启用 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 端口。

  1. 确保 firewalld 正在运行:

    $ sudo systemctl status firewalld
  2. firewalld 端口添加到控制器数据库节点(例如,端口 27199):

    $ sudo firewall-cmd --permanent --zone=public --add-port=27199/tcp
  3. 重新加载 firewalld

    $ sudo firewall-cmd --reload
  4. 确认端口已打开:

    $ sudo firewall-cmd --list-ports
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.