Ansibleテンプレート内でホストのリストをループする方法


  1. ホストのリストを直接ループする方法: テンプレート内で、hostvarsを使用してホストのリストを取得し、それをループで処理することができます。例えば、以下のようなコードを使用することができます:

    {% for host in groups['group_name'] %}
    - ホスト名: {{ hostvars[host]['ansible_hostname'] }}
     IPアドレス: {{ hostvars[host]['ansible_default_ipv4']['address'] }}
    {% endfor %}

    上記の例では、group_nameにはループを行いたいホストのグループ名を指定します。各ホストの情報にアクセスするために、hostvarsを使用してホストの変数にアクセスします。

  2. ホストのリストを変数として渡す方法: ホストのリストを変数として渡し、それをループで処理することもできます。例えば、以下のようなコードを使用することができます:

    - hosts: localhost
     vars:
       host_list:
         - host1
         - host2
         - host3
     tasks:
       - name: ホストのリストをループ
         debug:
           msg: "ホスト名: {{ item }}"
         loop: "{{ host_list }}"

    上記の例では、host_list変数にループを行いたいホストのリストを指定します。loopディレクティブを使用して、変数をループで処理し、各ホストにアクセスします。