12.9. クラスター設定をエクスポートして RHEL システムロール Playbook を作成する


ha_cluster RHEL システムロールを使用して、クラスターの Corosync 設定を ha_cluster 変数にエクスポートし、その設定をロールに再度渡すことで、同じクラスターを再作成できるようになりました。

クラスターの作成に ha_cluster を使用しなかった場合、またはクラスターの元の Playbook にアクセスできない場合は、この機能を使用して、クラスターを作成するための新しい Playbook を構築できます。

ha_cluster RHEL システムロールを使用してクラスターの設定をエクスポートしても、すべての変数がエクスポートされるわけではありません。これらの変数を考慮して、設定を手動で変更する必要があります。

エクスポートには次の変数が存在します。

  • ha_cluster_cluster_present
  • ha_cluster_start_on_boot
  • ha_cluster_cluster_name
  • ha_cluster_transport
  • ha_cluster_totem
  • ha_cluster_quorum
  • ha_cluster_node_options - node_namecorosync_addresses、および pcs_address オプションのみが存在します。
  • ha_cluster_enable_repos
  • ha_cluster_enable_repos_resilient_storage
  • ha_cluster_manage_firewall
  • ha_cluster_manage_selinux
  • ha_cluster_install_cloud_agents
  • ha_cluster_pcs_permission_list
  • ha_cluster_resource_primitives
  • ha_cluster_resource_groups
  • ha_cluster_resource_clones
  • ha_cluster_resource_bundles
  • ha_cluster_cluster_properties
  • ha_cluster_resource_defaults
  • ha_cluster_resource_operation_defaults
  • ha_cluster_constraints_location
  • ha_cluster_constraints_colocation
  • ha_cluster_constraints_order
  • ha_cluster_constraints_ticket

次の変数はエクスポートに存在しません。

  • ha_cluster_hacluster_password - これはロールの必須変数ですが、既存のクラスターから抽出することはできません。
  • ha_cluster_corosync_key_srcha_cluster_pacemaker_key_src、および ha_cluster_fence_virt_key_src - これらの変数には、Corosync および Pacemaker の鍵ファイルへのパスが格納されています。鍵自体はエクスポートされないため、これらの変数もエクスポートファイルには含まれません。各クラスターに固有の鍵を使用してください。
  • ha_cluster_regenerate_keys - 既存の鍵を使用するか、新しい鍵を生成するかを定義します。
  • ha_cluster_hacluster_qdevice_password - クォーラムデバイス上の ha_cluster ユーザーのパスワードを指定します。これは、クォーラムデバイスを使用する際に手動介入を避けるために必要な設定です。既存のクラスターからは展開できません。
  • ha_cluster_fence_agent_packages - インストールするフェンスエージェントパッケージのリスト。
  • ha_cluster_extra_packages - クラスターノードにインストールする追加パッケージを指定します。
  • ha_cluster_use_latest_packages - true に設定すると、システムロールはクラスターで使用可能な最新のパッケージを使用します。
  • ha_cluster_pcsd_public_key_srcha_cluster_pcsd_private_key_src - これらの変数には、pcsd の TLS 証明書と秘密鍵へのパスが含まれています。証明書と鍵自体はエクスポートされないため、これらの変数もエクスポートには含まれません。
  • ha_cluster_pcsd_certificates - この変数が設定されている場合、証明書 RHEL システムロールが内部的に使用され、pcsd の秘密鍵と証明書が作成されます。既存のクラスターからは展開できません。

現在のクラスター設定をエクスポートするには、ha_cluster RHEL システムロールを実行し、ha_cluster_export_configuration: true を設定します。これを行うと、ロールがクラスターまたは qnetd ホストの設定を完了し、その設定を ha_cluster_facts 変数に格納した後に、エクスポートがトリガーされます。

デフォルトでは、ha_cluster_cluster_presenttrue に設定され、ha_cluster_qnetd.presentfalse に設定されています。これらの設定により、指定ホスト上のクラスターが再設定され、指定ホストから qnetd 設定が削除され、設定がエクスポートされます。既存の設定を変更せずにエクスポートをトリガーするには、次の設定を使用してロールを実行します。

- hosts: node1
  vars:
    ha_cluster_cluster_present: null
    ha_cluster_qnetd: null
    ha_cluster_export_configuration: true

  roles:
    - linux-system-roles.ha_cluster

次の手順:

  • クラスターノード node1 からクラスター設定を ha_cluster_facts 変数にエクスポートします。
  • この Playbook を実行しても既存のクラスター設定が変更されないように、ha_cluster_cluster_present および ha_cluster_qnetd 変数を null に設定します。
  • Ansible デバッグモジュールを使用して、ha_cluster_facts の内容を表示します。
  • ha_cluster_facts の内容を YAML 形式でコントロールノード上のファイルに保存し、それを基に Playbook を作成できるようにします。

前提条件

手順

  1. 次の内容を含む Playbook ファイル (例: ~/playbook.yml) を作成します。

    ---
    - name: Export high availability cluster configuration
      hosts: node1
      Tasks:
        - name: Export configuration that does not modify existing cluster
          ansible.builtin.include_role:
            name: redhat.rhel_system_roles.ha_cluster
          vars:
            ha_cluster_cluster_present: null
            ha_cluster_qnetd: null
            ha_cluster_export_configuration: true
        - name: Print ha_cluster_info_result variable
          ansible.builtin.debug:
            var: ha_cluster_facts
        - name: Save current cluster configuration to a file
          delegate_to: localhost
          ansible.builtin.copy:
            content: "{{ ha_cluster_facts | to_nice_yaml(sort_keys=false) }}"
            dest: /path/to/file
            mode: "0640"

    サンプル Playbook で指定されている設定は次のとおりです。

    hosts: node1
    エクスポートするクラスター情報を含むノード。
    ha_cluster_cluster_present: null
    指定ホスト上のクラスター設定を変更しないことを示すための設定。
    ha_cluster_qnetd: null
    指定ホスト上の qnetd ホスト設定を変更しないことを示すための設定。
    ha_cluster_export_configuration: true
    現在のクラスター設定をエクスポートし、ha_cluster_info モジュールによって生成される ha_cluster_facts 変数に格納するかどうかを決定する変数。
    ha_cluster_facts
    エクスポートされたクラスター設定を格納する変数。
    delegate_to: localhost
    エクスポートされた設定ファイルの場所としてコントロールノードを指定します。
    content: "{{ ha_cluster_facts | to_nice_yaml(sort_keys=false) }"}, dest: /path/to/file, mode: "0640"

    YAML 形式の設定ファイルを /path/to/file にコピーし、ファイルの権限を 0640 に設定します。

    Playbook で使用されるすべての変数の詳細は、コントロールノードの /usr/share/ansible/roles/rhel-system-roles.ha_cluster/README.md ファイルを参照してください。

  2. Playbook の構文を検証します。

    $ ansible-playbook --syntax-check ~/playbook.yml

    このコマンドは構文を検証するだけであり、有効だが不適切な設定から保護するものではないことに注意してください。

  3. Playbook を実行します。

    $ ansible-playbook ~/playbook.yml
  4. 現在のクラスター設定をエクスポートした後、コントロールノードの /path/to/file にエクスポートした変数を使用して、システム用の Playbook を作成できます。

    ha_cluster_hacluster_password 変数を追加する必要があります。この変数は必須の変数ですが、エクスポートには存在しないためです。システムで必要な場合は、ha_cluster_corosync_key_srcha_cluster_pacemaker_key_srcha_cluster_fence_virt_key_src、および ha_cluster_regenerate_keys 変数を追加します。これらの変数はエクスポートされません。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る