Does this help?
$ cat arrays.yml
hosts: localhost
vars:
users:
- username: test
homedir: /home/test
shell: /bin/bash
- username: test1
homedir: /home/test1
shell: /bin/bash
- username: test2
homedir: /home/test2
shell: /bin/bash
tasks:
- name: print array values
debug:
msg: "User {{ item.username }} has homedirectory {{ item.homedir }} and shell {{ item.shell }}"
loop: "{{ users }}"
$ ansible-playbook arrays.yml
PLAY [show arrays] ***************************************************************************************************************
TASK [Gathering Facts] ***********************************************************************************************************
ok: [localhost]
TASK [print array values] ********************************************************************************************************
ok: [localhost] => (item={'username': 'test', 'homedir': '/home/test', 'shell': '/bin/bash'}) => {
"msg": "User test has homedirectory /home/test and shell /bin/bash"
}
ok: [localhost] => (item={'username': 'test1', 'homedir': '/home/test1', 'shell': '/bin/bash'}) => {
"msg": "User test1 has homedirectory /home/test1 and shell /bin/bash"
}
ok: [localhost] => (item={'username': 'test2', 'homedir': '/home/test2', 'shell': '/bin/bash'}) => {
"msg": "User test2 has homedirectory /home/test2 and shell /bin/bash"
}
PLAY RECAP ***********************************************************************************************************************
localhost : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0