リストにディクショナリを追加する
はじめに
pythonのappend
メソッド的なことをansibleでやってみたメモです。
Playbook
--- - hosts: localhost connection: local gather_facts: false tasks: - name: Create an IP address list set_fact: ip_address_list: [] - name: Append IP addresses set_fact: ip_address_list: "{{ ip_address_list + [{item.use: item.ip_address}] }}" loop: - use: service ip_address: '192.168.10.0/24' - use: management ip_address: '192.168.20.0/24' - name: Debug the IP address list debug: var: ip_address_list
実行結果
# ansible-playbook -i inventory.ini append.yml PLAY [localhost] ****************************************************************************************************************************************************************************** TASK [Create an IP address list] ************************************************************************************************************************************************************** ok: [localhost] TASK [Append IP addresses] ******************************************************************************************************************************************************************** ok: [localhost] => (item={'use': 'service', 'ip_address': '192.168.10.0/24'}) ok: [localhost] => (item={'use': 'management', 'ip_address': '192.168.20.0/24'}) TASK [Debug the IP address list] ************************************************************************************************************************************************************** ok: [localhost] => { "ip_address_list": [ { "service": "192.168.10.0/24" }, { "management": "192.168.20.0/24" } ] } PLAY RECAP ************************************************************************************************************************************************************************************ localhost : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0