第23章 システムロールを使用した高可用性クラスターの設定

ha_cluster システムロールを使用すると、Pacemaker の高可用性クラスターリソースマネージャーを使用する高可用性クラスターを設定し、管理できます。

23.1. ha_cluster システムロール変数

ha_cluster システムロール Playbook では、クラスターデプロイメントの要件に従って、高可用性クラスターの変数を定義します。

ha_cluster システムロールに設定できる変数は以下のとおりです。

ha_cluster_enable_repos
ha_cluster システムロールで必要なパッケージを含むリポジトリーを有効にするブール値フラグ。これがこの変数のデフォルト値である yes に設定されている場合は、クラスターメンバーとして使用するシステムで RHEL および RHEL 高可用性アドオンのアクティブなサブスクリプションカバレッジが必要です。そうでない場合、システムロールは失敗します。
ha_cluster_cluster_present

yes に設定されている場合には、ロールに渡される変数に従って、HA クラスターがホストで設定されるブール値フラグを決定します。ロールで指定されておらず、ロールによってサポートされないクラスター設定は失われます。

ha_cluster_cluster_presentno に設定すると、すべての HA クラスター設定がターゲットホストから削除されます。

この変数のデフォルト値は yes です。

以下の Playbook の例では、node1 および node2 のすべてのクラスター設定を削除します。

- hosts: node1 node2
  vars:
    ha_cluster_cluster_present: no

  roles:
    - rhel-system-roles.ha_cluster
ha_cluster_start_on_boot
起動時にクラスターサービスが起動するように設定されるかどうかを決定するブール値フラグ。この変数のデフォルト値は yes です。
ha_cluster_fence_agent_packages
インストールするフェンスエージェントパッケージの一覧この変数のデフォルト値は fence-agents-all, fence-virt です。
ha_cluster_extra_packages

インストールする追加パッケージの一覧この変数のデフォルト値はパッケージではありません。

この変数は、ロールによって自動的にインストールされていない追加パッケージをインストールするために使用できます (例: カスタムリソースエージェント)。

フェンスエージェントをこのリストのメンバーとして追加できます。ただし、ha_cluster_fence_agent_packages は、フェンスエージェントの指定に使用する推奨されるロール変数であるため、デフォルト値が上書きされます。

ha_cluster_hacluster_password
hacluster ユーザーのパスワードを指定する文字列の値。hacluster ユーザーには、クラスターへの完全アクセスがあります。Ansible Vault を使用したコンテンツの暗号化 で説明されているように、パスワードの暗号化を行うことが推奨されます。デフォルトのパスワード値がないため、この変数を指定する必要があります。
ha_cluster_corosync_key_src

Corosync authkey ファイルへのパス。これは、Corosync 通信の認証および暗号鍵です。各クラスターに一意の authkey 値を指定することが強く推奨されます。キーは、ランダムなデータの 256 バイトでなければなりません。

この変数の鍵を指定する場合は、Ansible Vault を使用したコンテンツの暗号化 で説明されているように、鍵を vault 暗号化することが推奨されます。

鍵が指定されていない場合は、ノードにすでに存在するキーが使用されます。ノードに同じ鍵がない場合、あるノードの鍵が他のノードに分散され、すべてのノードが同じキーを持つようにします。ノードに鍵がない場合は、新しい鍵が生成され、ノードに分散されます。

この変数が設定されている場合は、このキーで ha_cluster_regenerate_keys が無視されます。

この変数のデフォルト値は null です。

ha_cluster_pacemaker_key_src

Pacemaker の authkey ファイルへのパスです。これは、Pacemaker 通信の認証および暗号鍵です。各クラスターに一意の authkey 値を指定することが強く推奨されます。キーは、ランダムなデータの 256 バイトでなければなりません。

この変数の鍵を指定する場合は、Ansible Vault を使用したコンテンツの暗号化 で説明されているように、鍵を vault 暗号化することが推奨されます。

鍵が指定されていない場合は、ノードにすでに存在するキーが使用されます。ノードに同じ鍵がない場合、あるノードの鍵が他のノードに分散され、すべてのノードが同じキーを持つようにします。ノードに鍵がない場合は、新しい鍵が生成され、ノードに分散されます。

この変数が設定されている場合は、このキーで ha_cluster_regenerate_keys が無視されます。

この変数のデフォルト値は null です。

ha_cluster_fence_virt_key_src

fence-virt または fence-xvm の事前共有鍵ファイルへのパス。これは、fence-virt または fence-xvm フェンスエージェントの認証キーの場所になります。

この変数の鍵を指定する場合は、Ansible Vault を使用したコンテンツの暗号化 で説明されているように、鍵を vault 暗号化することが推奨されます。

鍵が指定されていない場合は、ノードにすでに存在するキーが使用されます。ノードに同じ鍵がない場合、あるノードの鍵が他のノードに分散され、すべてのノードが同じキーを持つようにします。ノードに鍵がない場合は、新しい鍵が生成され、ノードに分散されます。この方法で ha_cluster システムロールが新しいキーを生成する場合は、鍵をノードのハイパーバイザーにコピーして、フェンシングが機能するようにする必要があります。

この変数が設定されている場合は、このキーで ha_cluster_regenerate_keys が無視されます。

この変数のデフォルト値は null です。

ha_cluster_pcsd_public_key_srcrha_cluster_pcsd_private_key_src

pcsd TLS 証明書および秘密鍵へのパス。これが指定されていない場合は、ノード上にすでに証明書キーのペアが使用されます。証明書キーペアが存在しない場合は、無作為に新しいキーが生成されます。

この変数に秘密鍵の値を指定した場合は、Ansible Vault を使用したコンテンツの暗号化 で説明されているように、鍵を暗号化することが推奨されます。

これらの変数が設定されている場合は、この証明書と鍵のペアで ha_cluster_regenerate_keys は無視されます。

これらの変数のデフォルト値は null です。

ha_cluster_regenerate_keys

yes に設定されるブール値フラグは、共有前の鍵と TLS 証明書を再生成することを決定します。キーおよび証明書が再生成された場合の詳細は、変数 ha_cluster_corosync_key_srcha_cluster_pacemaker_key_srcha_cluster_fence_virt_key_srcha_cluster_pcsd_public_key_src、および ha_cluster_pcsd_private_key_src の説明を参照してください。

この変数のデフォルト値は no です。

ha_cluster_pcs_permission_list

pcsd を使用してクラスターを管理するパーミッションを設定します。この変数を使用して設定するアイテムは以下のとおりです。

  • type - user または group
  • name - ユーザーまたはグループの名前
  • allow_list - 指定されたユーザーまたはグループの許可されるアクション:

    • read - クラスターのステータスおよび設定の表示
    • write - パーミッションおよび ACL を除くクラスター設定の変更
    • grant - クラスターパーミッションおよび ACL の変更
    • full - ノードの追加および削除、キーおよび証明書へのアクセスなど、クラスターへの無制限アクセス

ha_cluster_pcs_permission_list 変数の構造とデフォルト値は以下のとおりです。

ha_cluster_pcs_permission_list:
  - type: group
    name: hacluster
    allow_list:
      - grant
      - read
      - write
ha_cluster_cluster_name
クラスターの名前。これは、デフォルトが my-cluster の文字列値です。
ha_cluster_transport

(RHEL 8.7 以降) クラスター転送方法を設定します。この変数を使用して設定するアイテムは以下のとおりです。

  • type (オプション) - トランスポートタイプ: knetudp、または udpuudp および udpu トランスポートタイプは、1 つのリンクのみをサポートします。udpudpu の暗号化は常に無効になっています。指定しない場合、デフォルトで knet になります。
  • options (オプション) - トランスポートオプションを含む名前と値の辞書のリスト。
  • links (オプション) - 名前と値の辞書のリストのリスト。名前値ディクショナリーの各リストには、1 つの Corosync リンクのオプションが含まれています。リンクごとに linknumber 値を設定することをお勧めします。それ以外の場合、辞書の最初のリストはデフォルトで最初のリンクに割り当てられ、2 番目のリストは 2 番目のリンクに割り当てられます。
  • compression (オプション) - トランスポート圧縮を設定する名前と値の辞書のリスト。knet トランスポートタイプでのみサポートされます。
  • crypto (オプション) - トランスポートの暗号化を設定する名前と値の辞書のリスト。デフォルトでは、暗号化は有効になっています。knet トランスポートタイプでのみサポートされます。

    許可されているオプションのリストについては、pcs -h cluster setup のヘルプページ、または pcs(8) マニュアルページの cluster セクションの セットアップ の説明を参照してください。詳細な説明については、corosync.conf(5) の man ページを参照してください。

    ha_cluster_transport 変数の構造は次のとおりです。

    ha_cluster_transport:
      type: knet
      options:
        - name: option1_name
          value: option1_value
        - name: option2_name
          value: option2_value
      links:
        -
          - name: option1_name
            value: option1_value
          - name: option2_name
            value: option2_value
        -
          - name: option1_name
            value: option1_value
          - name: option2_name
            value: option2_value
      compression:
        - name: option1_name
          value: option1_value
        - name: option2_name
          value: option2_value
      crypto:
        - name: option1_name
          value: option1_value
        - name: option2_name
          value: option2_value

    トランスポート方式を設定する ha_cluster System Role Playbook の例については、高可用性クラスターでの Corosync 値の設定 を参照してください。

ha_cluster_totem

(RHEL 8.7 以降) Corosync トーテムを設定します。許可されているオプションのリストについては、pcs -h cluster setup のヘルプページ、または pcs(8) マニュアルページの cluster セクションの セットアップ の説明を参照してください。詳細な説明については、corosync.conf(5) の man ページを参照してください。

ha_cluster_totem 変数の構造は次のとおりです。

ha_cluster_totem:
  options:
    - name: option1_name
      value: option1_value
    - name: option2_name
      value: option2_value

Corosync トーテムを設定する ha_cluster System Role Playbook の例については、高可用性クラスターでの Corosync 値の設定 を参照してください。

ha_cluster_quorum

(RHEL 8.7 以降) クラスタークォーラムを設定します。auto_tie_breakerlast_man_standinglast_man_standing_window、および wait_for_all クォーラムオプションを設定できます。クォーラムオプションの詳細については、votequorum(5) のマニュアルページを参照してください。

ha_cluster_quorum 変数の構造は次のとおりです。

ha_cluster_quorum:
  options:
    - name: option1_name
      value: option1_value
    - name: option2_name
      value: option2_value

クラスタークォーラムを設定する ha_cluster System Role playbook の例については、高可用性クラスターでの Corosync 値の設定 を参照してください。

ha_cluster_sbd_enabled

(RHEL 8.7 以降) クラスターが SBD ノードフェンシングメカニズムを使用できるかどうかを決定するブールフラグ。この変数のデフォルト値は no です。

SBD を有効にする ha_cluster System Role Playbook の例については。SBD ノードフェンシングを使用した高可用性クラスターの設定 を参照してください。

ha_cluster_sbd_options

(RHEL 8.7 以降) SBD オプションを指定する名前と値の辞書のリスト。サポートされているオプションは次のとおりです。

  • delay-start - デフォルトは no
  • startmode - デフォルトは always
  • timeout-action - デフォルトは flush,reboot
  • watchdog-timeout - デフォルトは 5

    これらのオプションの詳細については、sbd(8) man ページの Configuration via environment セクションを参照してください。

    SBD を有効にする ha_cluster System Role Playbook の例については、Configuring a high availability cluster with SBD node fencing を参照してください。

SBD を使用する場合、オプションで、インベントリー内のノードごとにウォッチドッグと SBD デバイスを設定できます。インベントリーファイルでウォッチドッグおよび SBD デバイスを設定する方法 については、ha_cluster システムロールのインベントリーの指定 を参照してください。

ha_cluster_cluster_properties

Pacemaker クラスター全体の設定のクラスタープロパティーのセットの一覧。クラスタープロパティーのセットは 1 つだけサポートされます。

クラスタープロパティーのセットの構造は次のとおりです。

ha_cluster_cluster_properties:
  - attrs:
      - name: property1_name
        value: property1_value
      - name: property2_name
        value: property2_value

デフォルトでは、プロパティーは設定されません。

以下の Playbook の例では、node1 および node2 で設定されるクラスターを設定し、stonith-enabled および no-quorum-policy クラスタープロパティーを設定します。

- hosts: node1 node2
  vars:
    ha_cluster_cluster_name: my-new-cluster
    ha_cluster_hacluster_password: password
    ha_cluster_cluster_properties:
      - attrs:
          - name: stonith-enabled
            value: 'true'
          - name: no-quorum-policy
            value: stop

  roles:
    - rhel-system-roles.ha_cluster
ha_cluster_resource_primitives

この変数は、stonith リソースなど、システムロールにより設定された Pacemaker リソースを定義します。各リソースに設定できるアイテムは次のとおりです。

  • id (必須) - リソースの ID。
  • agent (必須) - リソースまたは stonith エージェントの名前 (例: ocf:pacemaker:Dummy または stonith:fence_xvm)。stonith エージェントには、stonith: を指定する必要があります。リソースエージェントの場合は、ocf:pacemaker:Dummy ではなく、Dummy などの短縮名を使用することができます。ただし、同じ名前の複数のエージェントがインストールされていると、使用するエージェントを決定できないため、ロールは失敗します。そのため、リソースエージェントを指定する場合はフルネームを使用することが推奨されます。
  • instance_attrs (オプション): リソースのインスタンス属性のセットの一覧。現在、1 つのセットのみがサポートされています。属性の名前と値、必須かどうか、およびリソースまたは stonith エージェントによって異なります。
  • meta_attrs (オプション): リソースのメタ属性のセットの一覧。現在、1 つのセットのみがサポートされています。
  • operations (任意): リソースの操作のリスト。

    • action (必須): pacemaker と、リソースまたは stonith エージェントで定義されている操作アクション。
    • attrs (必須): 少なくとも 1 つのオプションを指定する必要があります。

ha_cluster システムロールで設定するリソース定義の構造は以下のとおりです。

  - id: resource-id
    agent: resource-agent
    instance_attrs:
      - attrs:
          - name: attribute1_name
            value: attribute1_value
          - name: attribute2_name
            value: attribute2_value
    meta_attrs:
      - attrs:
          - name: meta_attribute1_name
            value: meta_attribute1_value
          - name: meta_attribute2_name
            value: meta_attribute2_value
    operations:
      - action: operation1-action
        attrs:
          - name: operation1_attribute1_name
            value: operation1_attribute1_value
          - name: operation1_attribute2_name
            value: operation1_attribute2_value
      - action: operation2-action
        attrs:
          - name: operation2_attribute1_name
            value: operation2_attribute1_value
          - name: operation2_attribute2_name
            value: operation2_attribute2_value

デフォルトでは、リソースは定義されません。

リソース設定を含む ha_cluster システムロール Playbook の例については、フェンシングおよびリソースを使用した高可用性クラスターの設定 を参照してください。

をクリックします。

ha_cluster_resource_groups

この変数は、システムロールによって設定される Pacemaker リソースグループを定義します。各リソースグループに設定可能な項目は、以下のとおりです。

  • id (必須): グループの ID。
  • resources (必須): グループのリソースの一覧。各リソースは ID によって参照され、リソースは ha_cluster_resource_primitives 変数に定義する必要があります。1 つ以上のリソースを一覧表示する必要があります。
  • meta_attrs (オプション): グループのメタ属性のセットの一覧。現在、1 つのセットのみがサポートされています。

ha_cluster システムロールで設定するリソースグループ定義の構造は以下のとおりです。

ha_cluster_resource_groups:
  - id: group-id
    resource_ids:
      - resource1-id
      - resource2-id
    meta_attrs:
      - attrs:
          - name: group_meta_attribute1_name
            value: group_meta_attribute1_value
          - name: group_meta_attribute2_name
            value: group_meta_attribute2_value

デフォルトでは、リソースグループが定義されていません。

リソースグループ設定を含む ha_cluster システムロール Playbook の例については、フェンシングおよびリソースを使用した高可用性クラスターの設定 を参照してください。

をクリックします。

ha_cluster_resource_clones

この変数は、システムロールによって設定された Pacemaker リソースクローンを定義します。リソースクローンに設定できるアイテムは次のとおりです。

  • resource_id (必須): クローンを作成するリソース。リソースは ha_cluster_resource_primitives 変数または ha_cluster_resource_groups 変数に定義する必要があります。
  • promotable (任意): 作成するリソースクローンが昇格可能なクローンであるかどうかを示します。これは、yes または no と示されます。
  • id (任意): クローンのカスタム ID。ID が指定されていない場合は、生成されます。このオプションがクラスターでサポートされない場合は、警告が表示されます。
  • meta_attrs (任意): クローンのメタ属性のセットの一覧。現在、1 つのセットのみがサポートされています。

ha_cluster システムロールで設定するリソースクローン定義の構造は次のとおりです。

ha_cluster_resource_clones:
  - resource_id: resource-to-be-cloned
    promotable: yes
    id: custom-clone-id
    meta_attrs:
      - attrs:
          - name: clone_meta_attribute1_name
            value: clone_meta_attribute1_value
          - name: clone_meta_attribute2_name
            value: clone_meta_attribute2_value

デフォルトでは、リソースのクローンが定義されていません。

リソースクローン設定を含む ha_cluster システムロール Playbook の例については、フェンシングおよびリソースを使用した高可用性クラスターの設定 を参照してください。

をクリックします。

ha_cluster_constraints_location

この変数は、リソースの場所の制約を定義します。リソースの場所の制約は、リソースを実行できるノードを示します。複数のリソースに一致する可能性のあるリソース ID またはパターンで指定されたリソースを指定できます。ノード名またはルールでノードを指定できます。

リソースの場所の制約に対して設定できる項目は次のとおりです。

  • resource (必須) - 制約が適用されるリソースの仕様。
  • node (必須) - リソースが優先または回避する必要があるノードの名前。
  • id (オプション) - 制約の ID。指定しない場合、自動生成されます。
  • options (オプション) - 名前と値のディクショナリーリスト。

    • score - 制約の重みを設定します。

      • 正の score 値は、リソースがノードでの実行を優先することを意味します。
      • 負の score 値は、リソースがノードで実行されないようにする必要があることを意味します。
      • -INFINITYscore 値は、リソースがノードで実行されないようにする必要があることを意味します。
      • score が指定されていない場合、スコア値はデフォルトで INFINITY になります。

デフォルトでは、リソースの場所の制約は定義されていません。

リソース ID とノード名を指定するリソースの場所に対する制約の構造は次のとおりです。

ha_cluster_constraints_location:
  - resource:
      id: resource-id
    node: node-name
    id: constraint-id
    options:
      - name: score
        value: score-value
      - name: option-name
        value: option-value

リソースパターンを指定するリソースの場所の制約に対して設定する項目は、リソース ID を指定するリソースの場所の制約に対して設定する項目と同じです。ただし、リソース仕様そのものは除きます。リソース仕様に指定する項目は次のとおりです。

  • pattern (必須) - POSIX 拡張正規表現リソース ID が照合されます。

リソースパターンとノード名を指定するリソースの場所に対する制約の構造は次のとおりです。

ha_cluster_constraints_location:
  - resource:
      pattern: resource-pattern
    node: node-name
    id: constraint-id
    options:
      - name: score
        value: score-value
      - name: resource-discovery
        value: resource-discovery-value

リソース ID とルールを指定するリソースの場所の制約に対して設定できる項目は次のとおりです。

  • resource (必須) - 制約が適用されるリソースの仕様。

    • id (必須) - リソース ID。
    • role (オプション) - 制約が制限されるリソースのロール。StartedUnpromotedPromoted
  • rule (必須) - pcs 構文を使用して記述された制約ルール。詳細については、pcs (8) の man ページで constraint location セクションを参照してください。
  • 指定するその他の項目は、ルールを指定しないリソース制約と同じ意味を持ちます。

リソース ID とルールを指定するリソースの場所に対する制約の構造は次のとおりです。

ha_cluster_constraints_location:
  - resource:
      id: resource-id
      role: resource-role
    rule: rule-string
    id: constraint-id
    options:
      - name: score
        value: score-value
      - name: resource-discovery
        value: resource-discovery-value

リソースパターンとルールを指定するリソースの場所の制約に対して設定する項目は、リソース ID とルールを指定するリソースの場所の制約に対して設定する項目と同じです。ただし、リソース仕様そのものは除きます。リソース仕様に指定する項目は次のとおりです。

  • pattern (必須) - POSIX 拡張正規表現リソース ID が照合されます。

リソースパターンとルールを指定するリソースの場所に対する制約の構造は次のとおりです。

ha_cluster_constraints_location:
  - resource:
      pattern: resource-pattern
      role: resource-role
    rule: rule-string
    id: constraint-id
    options:
      - name: score
        value: score-value
      - name: resource-discovery
        value: resource-discovery-value

リソース制約のあるクラスターを作成する ha_cluster システムロール Playbook の例については、リソースに制約のある高可用性クラスターの設定 を参照してください。

をクリックします。

ha_cluster_constraints_colocation

この変数は、リソースコロケーションの制約を定義します。リソースコロケーションの制約は、あるリソースの場所が別のリソースの場所に依存することを示しています。コロケーション制約には、2 つのリソースに対する単純なコロケーション制約と、複数のリソースに対するセットコロケーション制約の 2 種類があります。

単純なリソースコロケーション制約に対して設定できる項目は次のとおりです。

  • resource_follower (必須) - resource_leader に関連して配置する必要があるリソース。

    • id (必須) - リソース ID。
    • role (オプション) - 制約が制限されるリソースのロール。StartedUnpromotedPromoted
  • resource_leader (必須) - クラスターは、最初にこのリソースを配置する場所を決定してから、resource_follower を配置する場所を決定します。

    • id (必須) - リソース ID。
    • role (オプション) - 制約が制限されるリソースのロール。StartedUnpromotedPromoted
  • id (オプション) - 制約の ID。指定しない場合、自動生成されます。
  • options (オプション) - 名前と値のディクショナリーリスト。

    • score - 制約の重みを設定します。

      • 正の score 値は、リソースが同じノードで実行される必要があることを示します。
      • 負の score 値は、リソースが異なるノードで実行される必要があることを示します。
      • + INFINITYscore 値は、リソースが同じノードで実行される必要があることを示します。
      • -INFINITYscore 値は、リソースが異なるノードで実行される必要があることを示します。
      • score が指定されていない場合、スコア値はデフォルトで INFINITY になります。

デフォルトでは、リソースコロケーション制約は定義されていません。

単純なリソースコロケーション制約の構造は次のとおりです。

ha_cluster_constraints_colocation:
  - resource_follower:
      id: resource-id1
      role: resource-role1
    resource_leader:
      id: resource-id2
      role: resource-role2
    id: constraint-id
    options:
      - name: score
        value: score-value
      - name: option-name
        value: option-value

リソースセットのコロケーション制約に対して設定できる項目は次のとおりです。

  • resource_sets (必須) - リソースセットのリスト。

    • resource_ids (必須) - セット内のリソースのリスト。
    • options (オプション) - セット内のリソースが制約によってどのように扱われるかを微調整する名前と値のディクショナリーリスト。
  • id (オプション) - 単純なコロケーション制約の場合と同じ値。
  • options (オプション) - 単純なコロケーション制約の場合と同じ値。

リソースセットに対するコロケーション制約の構造は次のとおりです。

ha_cluster_constraints_colocation:
  - resource_sets:
      - resource_ids:
          - resource-id1
          - resource-id2
        options:
          - name: option-name
            value: option-value
    id: constraint-id
    options:
      - name: score
        value: score-value
      - name: option-name
        value: option-value

リソース制約のあるクラスターを作成する ha_cluster システムロール Playbook の例については、リソースに制約のある高可用性クラスターの設定 を参照してください。

をクリックします。

ha_cluster_constraints_order

この変数は、リソースの順序に対する制約を定義します。リソース順序の制約は、特定のリソースアクションが発生する順序を示します。リソース順序の制約には、2 つのリソースに対する単純な順序制約と、複数のリソースに対するセット順序制約の 2 種類があります。

単純なリソース順序制約に対して設定できる項目は次のとおりです。

  • resource_first (必須) - resource_then リソースが依存するリソース。

    • id (必須) - リソース ID。
    • action (オプション) - resource_then リソースに対してアクションを開始する前に完了する必要のあるアクション。許可される値: startstoppromotedemode
  • resource_then (必須) - 依存リソース。

    • id (必須) - リソース ID。
    • action (オプション) - resource_first リソースに対するアクションが完了した後にのみリソースが実行できるアクション。許可される値: startstoppromotedemode
  • id (オプション) - 制約の ID。指定しない場合、自動生成されます。
  • options (オプション) - 名前と値のディクショナリーリスト。

デフォルトでは、リソース順序の制約は定義されていません。

単純なリソース順序の制約の構造は次のとおりです。

ha_cluster_constraints_order:
  - resource_first:
      id: resource-id1
      action: resource-action1
    resource_then:
      id: resource-id2
      action: resource-action2
    id: constraint-id
    options:
      - name: score
        value: score-value
      - name: option-name
        value: option-value

リソースセットの順序制約に対して設定できる項目は次のとおりです。

  • resource_sets (必須) - リソースセットのリスト。

    • resource_ids (必須) - セット内のリソースのリスト。
    • options (オプション) - セット内のリソースが制約によってどのように扱われるかを微調整する名前と値のディクショナリーリスト。
  • id (オプション) - 単純な順序制約の場合と同じ値。
  • options (オプション) - 単純な順序制約の場合と同じ値。

リソースセットの順序制約の構造は次のとおりです。

ha_cluster_constraints_order:
  - resource_sets:
      - resource_ids:
          - resource-id1
          - resource-id2
        options:
          - name: option-name
            value: option-value
    id: constraint-id
    options:
      - name: score
        value: score-value
      - name: option-name
        value: option-value

リソース制約のあるクラスターを作成する ha_cluster システムロール Playbook の例については、リソースに制約のある高可用性クラスターの設定 を参照してください。

をクリックします。

ha_cluster_constraints_ticket

この変数は、リソースチケットの制約を定義します。リソースチケットの制約は、特定のチケットに依存するリソースを示します。リソースチケット制約には、1 つのリソースに対する単純なチケット制約と、複数のリソースに対するチケット順序の制約の 2 種類があります。

単純なリソースチケット制約に対して設定できる項目は次のとおりです。

  • resource (必須) - 制約が適用されるリソースの仕様。

    • id (必須) - リソース ID。
    • role (オプション) - 制約が制限されるリソースのロール。StartedUnpromotedPromoted
  • ticket (必須) - リソースが依存するチケットの名前。
  • id (オプション) - 制約の ID。指定しない場合、自動生成されます。
  • options (オプション) - 名前と値のディクショナリーリスト。

    • loss-policy (オプション) - チケットが取り消された場合にリソースに対して実行するアクション。

デフォルトでは、リソースチケットの制約は定義されていません。

単純なリソースチケット制約の構造は次のとおりです。

ha_cluster_constraints_ticket:
  - resource:
      id: resource-id
      role: resource-role
    ticket: ticket-name
    id: constraint-id
    options:
      - name: loss-policy
        value: loss-policy-value
      - name: option-name
        value: option-value

リソースセットのチケット制約に対して設定できる項目は次のとおりです。

  • resource_sets (必須) - リソースセットのリスト。

    • resource_ids (必須) - セット内のリソースのリスト。
    • options (オプション) - セット内のリソースが制約によってどのように扱われるかを微調整する名前と値のディクショナリーリスト。
  • ticket (必須) - 単純なチケット制約の場合と同じ値。
  • id (オプション) - 単純なチケット制約の場合と同じ値。
  • options (オプション) - 単純なチケット制約の場合と同じ値。

リソースセットのチケット制約の構造は次のとおりです。

ha_cluster_constraints_ticket:
  - resource_sets:
      - resource_ids:
          - resource-id1
          - resource-id2
        options:
          - name: option-name
            value: option-value
    ticket: ticket-name
    id: constraint-id
    options:
      - name: option-name
        value: option-value

リソース制約のあるクラスターを作成する ha_cluster システムロール Playbook の例については、リソースに制約のある高可用性クラスターの設定 を参照してください。

をクリックします。