ディクショナリにディクショナリを追加する
はじめに
ディクショナリをディクショナリに追加する、ただそれだけのメモです。
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 | combine({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": { "management": "192.168.20.0/24", "service": "192.168.10.0/24" } } PLAY RECAP ************************************************************************************************************************************************************************************ localhost : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0