Ansible で変数を使用して辞書キーを構築する

Ansible で変数を使用して辞書キーを構築する

私はホスト変数内の辞書を更新しようとしていますが、キーの名前は変数 (node) を使用して構築されています。たとえば、「node」が 1 の場合、hostvars['fakehost']['mydict']['localaddress1'] を更新します。これが私のコードです:

- name: Read IPv4 of first interface
    add_host:
      name: "fakehost"
      telium: "{{ hostvars['fakehost']['mydict'] | combine ({ 'localaddress{{ node }}' : ansible_all_ipv4_addresses[0] }) }}"

構文に関するエラーが発生し、ansible で localaddress{{node}} を構築する方法がわかりません。

答え1

口ひげ ( {{ }}) をネストしないでください。式の中に入ると、すでに Jinja コンテキスト内になるため、変数にアクセスするときに追加の区切り文字を使用しないでください。

      telium: "{{ hostvars['fakehost']['mydict'] | combine ({ 'localaddress' ~ node: ansible_all_ipv4_addresses[0] }) }}

関連情報