第4章 分離ノードの実行ノードへの移行

バージョン 1.x から最新バージョンの Red Hat Automation Platform にアップグレードするには、プラットフォーム管理者が分離されたレガシーノードから実行ノードに、データを移行する必要があります。この移行は、自動化メッシュのデプロイに必要です。

このガイドでは、サイドバイサイド移行を実行する方法を説明します。これにより、移行プロセス中に元の自動化環境のデータが変更されないようになります。

移行プロセスには、次の手順が含まれます。

  1. アップグレード設定を確認します。
  2. 元のインスタンスをバックアップします。
  3. サイドバイサイドアップグレード用に新しいインスタンスをデプロイします。
  4. Ansible コントローラーを使用して、新しいインスタンスにインスタンスグループを再作成します。
  5. 元のバックアップを新しいインスタンスに復元します。
  6. 実行ノードを設定して、インスタンスを Red Hat Ansible Automation Platform 2.3 にアップグレードします。
  7. アップグレードされたコントローラーインスタンスを設定します。

4.1. Ansible Automation Platform をアップグレードするための前提条件

Ansible Automation Platform のアップグレードを開始する前に、環境が次のノードと設定の要件を満たしていることを確認してください。

4.1.1. ノードの要件

Ansible Automation Platform のアップグレードプロセスに関係するノードには、次の仕様が必要です。

  • コントローラーノード、データベースノード、実行ノード、およびホップノード用の 16GB の RAM
  • コントローラーノード、データベースノード、実行ノード、およびホップノード用の 4 つの CPU
  • データベースノード用に 150 GB 以上のディスク容量
  • データベースノード以外のノード用に 40 GB 以上のディスク容量
  • DHCP 予約では、無限リースを使用して、静的 IP アドレスを持つクラスターをデプロイメント
  • すべてのノードの DNS レコード
  • すべてのノードで Red Hat Enterprise Linux 8 以降 64 ビット (x86) がインストール済み
  • Chrony はすべてのノードに設定済み
  • すべてのコンテンツ依存関係については Python3.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 サーバーアドレスが含まれるように変更します。必要なサーバーは 1 台だけですが、推奨は 3 台です。'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 サブスクリプションのアタッチ

Red Hat Ansible Automation Platform では、すべてのノードに有効なサブスクリプションをアタッチする必要があります。次のコマンドを実行して、現在のノードに Red Hat サブスクリプションがあることが確認できます。

# subscription-manager list --consumed

ノードにアタッチされている Red Hat サブスクリプションがない場合の詳細は、Red Hat 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 ユーザーを作成したら、アップグレードされた Ansible Automation Platform クラスターで使用されているすべてのノードに ssh キーをコピーします。これにより、Ansible Automation Platform のインストールが実行されたときに、パスワードなしですべてのノードへの ssh が可能になります。

$ ssh-copy-id ansible@node-1.example.com
注記

クラウドプロバイダー内で実行している場合は、代わりに、すべてのノードに ansible ユーザーの公開鍵を含む ~/.ssh/authorized_keys ファイルを作成し、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 インスタンスをアップグレードした後に、自動メッシュ機能を有効にするために、メッシュノード (実行ノードおよびホップノード) に自動メッシュポートを追加します。すべてのノードのメッシュネットワークに使用されるデフォルトのポートは 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