Ansible ホストファイルからホスト名を取得する

Ansible ホストファイルからホスト名を取得する

ホスト ファイルからグループの最初のホストの最初の 8 文字を取得できるようにしたいと考えています。そのため、以下の例では、変数を割り当てる必要がありますxx33sx01。inventory_hostname を使用してホストを取得できることはわかっていますが、4 つすべてが返され、必要なのは最初のホストと最初の 8 文字だけです。

Ansible のインベントリの例 (INI スタイル):

[TEST1]
xx33sx0101.domain.com
xx33sx0102.domain.com
xx33sx0103.domain.com
xx33sx0104.domain.com

ansible-playbook /local_home/scripts/test.yml -i ~/hosts -e "target=TEST1" -K

答え1

グループの最初のホスト名の最初の8文字を取得するには、次のようにします。

- debug:
    msg: "{{ groups[target_group][0][:8] }}"
  vars:
    target_group: TEST1

(未検証)


  • デバッグタスクを機能させるには、もちろんグループがプレイブックで利用可能である必要があります。例えば
- hosts: all
  tasks:
    - debug:
        msg: "{{ groups[target_group][0][:8] }}"

関連情報