Thanks for your answer. The name is needed as I need to reference it from another data structure. My problem is really not how to loop over a dict. My problem is the array installation_files where I need to loop additionally.
I need to unpack the installation files for every home ;-)
Thomas
- hosts: localhost
vars:
oracle_app_directory: /app
oracle_db_homes:
- version: 12.1.0
path: "{{ oracle_app_directory }}/oracle/product/12.1.0/dbhome_1"
installation_files_directory: /share/oracle/12.1.0/patches
installation_files:
- linuxamd64_12c_database_1of2.zip
- linuxamd64_12c_database_2of2.zip
unpack_directory: /share/oracle/12.1.0/unpacked
- version: 11.2.0
path: "{{ oracle_app_directory }}/oracle/product/11.2.0/dbhome_1"
installation_files_directory: /share/oracle/11.2.0/patches
installation_files:
- linuxamd64_11g_database_1of2.zip
- linuxamd64_11g_database_2of2.zip
unpack_directory: /share/oracle/11.2.0/unpacked
tasks:
- debug: msg="{{ item.0.version }} -- {{ item.1 }}"
with_subelements:
- oracle_db_homes
- installation_files
- hosts: localhost
vars:
oracle_app_directory: /app
oracle_db_homes:
DB1:
path: "{{ oracle_app_directory }}/oracle/product/12.1.0/dbhome_1"
installation_files_directory: /share/oracle/12.1.0/patches
installation_files:
- linuxamd64_12c_database_1of2.zip
- linuxamd64_12c_database_2of2.zip
unpack_directory: /share/oracle/12.1.0/unpacked
DB2:
path: "{{ oracle_app_directory }}/oracle/product/11.2.0/dbhome_1"
installation_files_directory: /share/oracle/11.2.0/patches
installation_files:
- linuxamd64_11g_database_1of2.zip
- linuxamd64_11g_database_2of2.zip
unpack_directory: /share/oracle/11.2.0/unpacked
tasks:
- debug: msg=" {{ item.1 }}"
with_subelements:
- oracle_db_homes
- installation_files
ansible-playbook -i hosts test.yml |grep msgTASK: [debug msg=" {{ item.1 }}"] ********************************************* "msg": " linuxamd64_12c_database_1of2.zip" "msg": " linuxamd64_12c_database_2of2.zip" "msg": " linuxamd64_11g_database_1of2.zip" "msg": " linuxamd64_11g_database_2of2.zip"