Ansible の同じリスト項目から変数の辞書値にアクセスする

Ansible の同じリスト項目から変数の辞書値にアクセスする

Ansible を使用して仮想マシンをいくつかデプロイしており、VM を定義するリスト変数があります。辞書項目の 1 つで、同じリスト要素内の変数として別の項目を使用できるかどうか知りたいです。たとえば、次の変数が定義されているとします。

nodes:
  - name: vm1
    aliases:
      - vm1
      - vm1.local
  - name: vm2
    aliases:
      - vm2
      - vm2.local

代わりに、このようなことをしてもいいでしょうか?

nodes:
  - name: vm1
    aliases:
      - "{{ name }}"
      - "{{ name }}.local"
  - name: vm2
    aliases:
      - "{{ name }}"
      - "{{ name }}.local"

私はそれを試し、そして使ってみました"{{ nodes.0.name }}"

答え1

いいえ、できません。実行時に文字列を連結する必要があります。例えば

  - debug:
      msg: "vm:{{ item.0 }} alias:{{ item.0 }}{{ item.1 }}"
    with_subelements:
      - "{{ nodes }}"
      - aliases
    vars:
      nodes:
        - name: vm1
          aliases:
            - ""
            - ".local"
        - name: vm2
          aliases:
            - ""
            - ".local"

(未検証)

関連情報