Ansible

在 Ansible 中使用變數構造字典鍵

  • September 16, 2021

我正在嘗試更新主機變數中的字典,並且密鑰的名稱是使用變數(節點)構造的。例如,如果“節點”為 1,那麼我想更新主機變數

$$ ‘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}} 。

不要嵌套鬍鬚 ( {{ }})。一旦你在一個表達式中,你就已經在一個 Jinja 上下文中並且在訪問變數時不應該使用額外的分隔符。

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

引用自:https://serverfault.com/questions/1077300