11.15. ha_cluster RHEL システムロールを使用して高可用性クラスターのアラートを設定する
(RHEL 9.5 以降) リソースやノードの障害、設定の変更などの Pacemaker イベントが発生した場合、何らかの外部アクションを実行する場合があります。たとえば、メールメッセージを送信したり、ファイルにログを記録したり、監視システムを更新したりする場合があります。
アラートエージェントを使用すると、外部アクションを実行するようにシステムを設定できます。アラートエージェントは、クラスターがリソースの設定と操作を処理するためにリソースエージェントを呼び出すのと同じ方法でクラスターが呼び出す外部プログラムです。クラスターは、環境変数を介してイベントに関する情報をエージェントに渡します。
ha_cluster
RHEL システムロールは、アラートを処理する外部プログラムを呼び出すようにクラスターを設定します。外部プログラムを提供し、クラスターノードに配布するのは、管理者が行う必要があります。
アラートエージェントの詳細は、クラスターイベントのスクリプトのトリガー を参照してください。
この手順の例では、ha_cluster
RHEL システムロールを使用して、Pacemaker アラートを設定する高可用性クラスターを自動的に作成します。
ha_cluster
RHEL システムロールは、指定されたノードの既存のクラスター設定を置き換えます。Playbook に指定されていない設定はすべて失われます。
前提条件
- コントロールノードと管理対象ノードの準備が完了している。
- 管理対象ノードで Playbook を実行できるユーザーとしてコントロールノードにログインしている。
-
管理対象ノードへの接続に使用するアカウントに、そのノードに対する
sudo
権限がある。 - クラスターメンバーとして使用するシステムには、RHEL および RHEL High Availability Add-On のアクティブなサブスクリプションがある。
- ha_cluster RHEL システムロールのインベントリーの指定 で説明されているように、インベントリーファイルでクラスターノードが指定されている。インベントリーファイルの作成に関する一般的な情報については、RHEL 9 でのコントロールノードの準備 を参照してください。
手順
機密性の高い変数を暗号化されたファイルに保存します。
vault を作成します。
ansible-vault create ~/vault.yml
$ ansible-vault create ~/vault.yml New Vault password: <vault_password> Confirm New Vault password: <vault_password>
Copy to Clipboard Copied! ansible-vault create
コマンドでエディターが開いたら、機密データを<key>: <value>
形式で入力します。cluster_password: <cluster_password>
cluster_password: <cluster_password>
Copy to Clipboard Copied! - 変更を保存して、エディターを閉じます。Ansible は vault 内のデータを暗号化します。
次の内容を含む Playbook ファイル (例:
~/playbook.yml
) を作成します。--- - name: Create a high availability cluster hosts: node1 node2 vars_files: - ~/vault.yml tasks: - name: Configure a cluster with alerts ansible.builtin.include_role: name: redhat.rhel_system_roles.ha_cluster vars: ha_cluster_cluster_name: my-new-cluster ha_cluster_hacluster_password: "{{ cluster_password }}" ha_cluster_manage_firewall: true ha_cluster_manage_selinux: true ha_cluster_alerts: - id: alert1 path: /alert1/path description: Alert1 description instance_attrs: - attrs: - name: alert_attr1_name value: alert_attr1_value meta_attrs: - attrs: - name: alert_meta_attr1_name value: alert_meta_attr1_value recipients: - value: recipient_value id: recipient1 description: Recipient1 description instance_attrs: - attrs: - name: recipient_attr1_name value: recipient_attr1_value meta_attrs: - attrs: - name: recipient_meta_attr1_name value: recipient_meta_attr1_value
--- - name: Create a high availability cluster hosts: node1 node2 vars_files: - ~/vault.yml tasks: - name: Configure a cluster with alerts ansible.builtin.include_role: name: redhat.rhel_system_roles.ha_cluster vars: ha_cluster_cluster_name: my-new-cluster ha_cluster_hacluster_password: "{{ cluster_password }}" ha_cluster_manage_firewall: true ha_cluster_manage_selinux: true ha_cluster_alerts: - id: alert1 path: /alert1/path description: Alert1 description instance_attrs: - attrs: - name: alert_attr1_name value: alert_attr1_value meta_attrs: - attrs: - name: alert_meta_attr1_name value: alert_meta_attr1_value recipients: - value: recipient_value id: recipient1 description: Recipient1 description instance_attrs: - attrs: - name: recipient_attr1_name value: recipient_attr1_value meta_attrs: - attrs: - name: recipient_meta_attr1_name value: recipient_meta_attr1_value
Copy to Clipboard Copied! サンプル Playbook で指定されている設定は次のとおりです。
ha_cluster_cluster_name: <cluster_name>
- 作成するクラスターの名前。
ha_cluster_hacluster_password: <password>
-
hacluster
ユーザーのパスワード。hacluster
ユーザーには、クラスターへのフルアクセス権が付与されます。 ha_cluster_manage_firewall: true
-
ha_cluster
RHEL システムロールがファイアウォールを管理するかどうかを決定する変数。 ha_cluster_manage_selinux: true
-
ha_cluster
RHEL システムロールがselinux
RHEL システムロールを使用してファイアウォール高可用性サービスのポートを管理するかどうかを決定する変数。 ha_cluster_alerts: <alert definitions>
Pacemaker アラートを定義する変数。
-
id
- アラートの ID。 -
path
- アラートエージェント実行可能ファイルへのパス。 -
description
- アラートの説明。 -
instance_attrs
- アラートのインスタンス属性セットのリスト。現在、サポートされているセットは 1 つだけであるため、最初のセットが使用され、残りは無視されます。 -
meta_attrs
- アラートのメタ属性セットのリスト。現在、サポートされているセットは 1 つだけであるため、最初のセットが使用され、残りは無視されます。 -
recipients
- アラートの受信者のリスト。 -
value
- 受信者の値。 -
id
- 受信者の ID。 -
description
- 受信者の説明。 -
instance_attrs
- 受信者のインスタンス属性セットのリスト。現在、サポートされているセットは 1 つだけであるため、最初のセットが使用され、残りは無視されます。 -
meta_attrs
- 受信者のメタ属性セットのリスト。現在、サポートされているセットは 1 つだけであるため、最初のセットが使用され、残りは無視されます。
-
Playbook で使用されるすべての変数の詳細は、コントロールノードの
/usr/share/ansible/roles/rhel-system-roles.ha_cluster/README.md
ファイルを参照してください。Playbook の構文を検証します。
ansible-playbook --syntax-check --ask-vault-pass ~/playbook.yml
$ ansible-playbook --syntax-check --ask-vault-pass ~/playbook.yml
Copy to Clipboard Copied! このコマンドは構文を検証するだけであり、有効だが不適切な設定から保護するものではないことに注意してください。
Playbook を実行します。
ansible-playbook --ask-vault-pass ~/playbook.yml
$ ansible-playbook --ask-vault-pass ~/playbook.yml
Copy to Clipboard Copied!