Ansible 中使用變數建構字典鍵

Ansible 中使用變數建構字典鍵

我正在嘗試更新主機變數中的字典,並且鍵的名稱是使用變數(節點)構造的。例如,如果 '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] }) }}

相關內容