0

2 つのホストで同じで、両方のホスト名を含むファイルを生成したいと考えています。

resource r0 {
  on host01 {
    device    /dev/drbd0;
  }
  on host02 {
    device    /dev/drbd0;
  }
}

次のようなテンプレートを使用してこれを実現しようとしました。

resource r0 {
  on {{ hostvars[groups['hosts'][0]]['ansible_nodename'] }} {
    device    /dev/drbd0;
  }
  on {{ hostvars[groups['hosts'][1]]['ansible_nodename'] }} {
    device    /dev/drbd0;
  }
}    

これは最初の変数に対して機能しますが、リストには 2 番目の要素がないため、2 番目の変数は不明です。

リストから各ホストを個別に選択できるように、ホストのリストを取得するにはどうすればよいですか?

編集:インベントリの関連ビットは

[hosts]
host01
host02

編集:

以下の私の答えは、ホスト名だけが必要な場合に機能します。ただし、特定のインターフェイスの IP アドレスも必要です。

hostvars現在のホスト以外のホストの情報にアクセスするにはどうすればよいですか?

4

1 に答える 1

0

以下は私が望むことを行います:

resource r0 {
  on {{ groups['hosts'][0] }} {
    device    /dev/drbd0;
  }
  on {{ groups['hosts'][1] }} {
    device    /dev/drbd0;
  }
}    

編集:

IP アドレスなど、現在のホスト以外のホストの変数にアクセスするには、Playbook のhosts命令に他のホストを含​​める必要があります。単一のホストに対してのみ実行されるプレイブックでテストしていたため、他のホストに関する情報にアクセスできませんでした。このようなテストを引き続き実行できますが、他のホストのファクトを収集するには、https ://serverfault.com/a/639269/144800 で説明されているように、他のホストに対するダミー アクションが必要です。

于 2016-01-20T07:39:15.793 に答える