Automation Hub の高可用性デプロイ
Automation Hub の高可用性デプロイメントの要件および手順の概要
概要
はじめに
本ガイドでは、Automation Hub の高可用性デプロイメントの要件および手順を概説します。
高可用性 (HA) の設定により、Automation Hub デプロイメントの信頼性およびスケーラビリティーが向上します。
Automation Hub の HA デプロイメントには、ワークロードを分散するロードバランサー (「アクティブ - アクティブ」設定) で同じサービスを同時に実行する複数のノードがあります。この設定により、サービスのダウンタイムを最小限に抑えるための単一障害点がなくなり、ワークロードの要件を満たすためのノードを簡単に追加または削除できます。
このガイドでは、HA Automation Hub アプリケーションスタックのデプロイメントについてのみ説明しています。データベースやファイルシステム HA などの他の HA コンポーネントは、本書では扱いません。
多様性を受け入れるオープンソースの強化
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。
第1章 高可用性 Automation Hub の要件
高可用性 (HA)Automation Hub をデプロイする前に、環境に共有ファイルシステムがインストールされていること、および該当する場合はネットワークストレージシステムが設定されていることを確認してください。
1.2. ネットワークストレージのインストール要件
Automation Hub ノード自体にネットワークストレージを使用して HA Automation Hub をインストールする場合は、Ansible Automation Platform インストーラーを実行する前に、最初に firewalld
をインストールして、共有ストレージシステムで必要なポートを開く必要があります。
以下のコマンドを実行して firewalld
をインストールして設定します。
firewalld
デーモンをインストールします。$ dnf install firewalld
以下のコマンドを使用して、<service> にネットワークストレージを追加します。
$ firewall-cmd --permanent --add-service=<service>
注記対応しているサービスの一覧は
$ firewall-cmd --get-services
コマンドを使用します。リロードして設定を適用します。
$ firewall-cmd --reload
第2章 高可用性 Automation Hub のインストール
Ansible Automation Platform インストーラーを、高可用性 (HA) 設定で Automation Hub をインストールするように設定します。マウントポイントを作成し、適切な SELinux コンテキストを Ansible Automation Platform 環境に追加して、SELinux に HA Automation Hub をインストールします。
2.1. 高可用性 Automation Hub のインストール
Ansible Automation Platform インストーラーの inventory
ファイルに以下の変更を加え、./setup.sh
スクリプトを実行して、高可用性 Automation Hub をインストールします。
データベースホスト IP の指定
automation_pg_host
および automation_pg_port
インベントリー変数を使用して、データベースホストの IP アドレスを指定します。以下に例を示します。
automationhub_pg_host='192.0.2.10' automationhub_pg_port='5432'
また、automationhub_pg_host
インベントリー変数の値を使用して、database セクションでデータベースホストの IP アドレスを指定します。
[database] 192.0.2.10
クラスター化設定のインスタンスの一覧を表示します。
クラスター化設定をインストールする場合、[automationhub] セクションの localhost ansible_connection=local
は、全インスタンスのホスト名または IP アドレスに置き換えます。以下に例を示します。
[automationhub] automationhub1.testing.ansible.com ansible_user=cloud-user ansible_host=192.0.2.18 automationhub2.testing.ansible.com ansible_user=cloud-user ansible_host=192.0.2.20 automationhub3.testing.ansible.com ansible_user=cloud-user ansible_host=192.0.2.22
Red Hat Single Sign-On の要件
Automation Hub 環境に Red Hat Single Sign-On を実装する場合は、automationhub_main_url
インベントリー変数を使用してクライアントが接続するメインの Automation Hub URL を指定します。以下に例を示します。
automationhub_main_url = 'https://automationhub.ansible.com'
automationhub_main_url
を指定しないと、[automationhub] グループの最初のノードがデフォルトで使用されます。
2.2. SELinux への Automation Hub の高可用性 (HA) デプロイメントのインストール
SELinux で Automation Hub の高可用性 (HA) デプロイメントをセットアップするには、/var/lib/pulp
と /var/lib/pulp/pullpcore_static
に 2 つのマウントポイントを作成し、それぞれに適切な SELinux コンテキストを割り当てます。/var/lib/pulp/pulpcore_static
のコンテキストを追加し、Ansible Automation Platform インストーラーを実行してから、/var/lib/pulp
のコンテキストを追加する必要があります。
前提条件
- サーバーに NFS エクスポートを設定している。
インストール前の手順
/var/lib/pulp
にマウントポイントを作成します。$ mkdir /var/lib/pulp/
テキストエディターを使用して
/etc/fstab
を開き、次の値を追加します。srv_rhel8:/data /var/lib/pulp nfs defaults,_netdev,nosharecache 0 0 srv_rhel8:/data/pulpcore_static /var/lib/pulp/pulpcore_static nfs defaults,_netdev,nosharecache,context="system_u:object_r:httpd_sys_content_rw_t:s0" 0 0
/var/lib/pulp
のマウントコマンドを実行します。$ mount /var/lib/pulp
/var/lib/pulp/pulpcore_static
にマウントポイントを作成します。$ mkdir /var/lib/pulp/pulpcore_static
マウントコマンドを実行します。
$ mount -a
マウントポイントを設定したら、Ansible Automation Platform インストーラーを実行します。
$ setup.sh -- -b --become-user root
インストールが完了したら、/var/lib/pulp/
マウントポイントをアンマウントして、適切な SELinux コンテキストを適用します。
インストール後の手順
Pulp サービスをシャットダウンします。
$ systemctl stop pulpcore.service
/var/lib/pulp/pulpcore_static
をアンマウントします。$ umount /var/lib/pulp/pulpcore_static
/var/lib/pulp/
をアンマウントします。$ umount /var/lib/pulp/
テキストエディターで
/etc/fstab
を開き、/var/lib/pulp
の既存値を以下に置き換えます。srv_rhel8:/data /var/lib/pulp nfs defaults,_netdev,nosharecache,context="system_u:object_r:pulpcore_var_lib_t:s0" 0 0
マウントコマンドを実行します。
$ mount -a
pulpcore.service を設定します。
2 つのマウントポイントを設定したら、Pulp サービスをシャットダウンして
pulpcore.service
を設定します。$ systemctl stop pulpcore.service
systemctl
を使用してpulpcore.service
を編集します。$ systemctl edit pulpcore.service
以下のエントリーを
pulpcore.service
に追加し、ネットワークを起動し、リモートマウントポイントをマウントすることで、Automation Hub サービスが起動するようにします。[Unit] After=network.target var-lib-pulp.mount
remote-fs.target
を有効にします。$ systemctl enable remote-fs.target
システムを再起動します。
$ systemctl reboot
トラブルシューティング
pulpcore SELinux ポリシーのバグにより、etc/pulp/certs/
のトークン認証公開鍵/秘密鍵に適切な SELinux ラベルがなく、パルププロセスが失敗する可能性があります。これが発生した場合は、次のコマンドを実行して、適切なラベルを一時的に貼り付けます。
$ chcon system_u:object_r:pulpcore_etc_t:s0 /etc/pulp/certs/token_{private,public}_key.pem
システムにラベルを付け直すたびに、このコマンドを繰り返して適切な SELinux ラベルを付け直す必要があります。
関連情報
- SELinux コンテキスト一覧は、SELinux Requirements on the Pulp Project documentation を参照してください。
- Pulp フォルダーの完全な説明については、ファイルシステムのレイアウト情報 を参照してください。