web-dev-qa-db-ja.com

yamlで配列またはリスト要素のファクトを指定するにはどうすればよいですか?

Hostvarsを次のようにチェックすると、

  - name: Display all variables/facts known for a Host
    debug: var=hostvars[inventory_hostname]

我々が得る:

ok: [default] => {
    "hostvars[inventory_hostname]": {
        "admin_email": "[email protected]", 
        "admin_user": "root", 
        "ansible_all_ipv4_addresses": [
            "192.168.35.19", 
            "10.0.2.15"
        ],...

"ansible_all_ipv4_addresses"リストの最初の要素をどのように指定しますか?

9
surfer190

ドット表記を使用する

"{{ ansible_all_ipv4_addresses.0 }}"
14
surfer190

これはPythonと同じように機能します。つまり、引用符でキーにアクセスし、整数でインデックスにアクセスできます。

  - set_fact:
      ip_address_1: "{{ hostvars[inventory_hostname]['ansible_all_ipv4_addresses'][0] }}"
      ip_address_2: "{{ hostvars[inventory_hostname]['ansible_all_ipv4_addresses'][1] }}"

  - name: Display 1st ipaddress
    debug:
      var: ip_address_1
  - name: Display 2nd ipaddress
    debug:
      var: ip_address_2
7
linuxdynasty