Thank you so much, I appreciated
On Saturday, September 17, 2022 at 11:36:31 PM UTC+3 [email protected] wrote:
> "users" is an array of three things. So you have to either iterate over
> the array as with something like "loop:", or index it as with
> "users[0]['username']", "users[0]['homedirectory']", "users[0]['shell']",
> or use some sort of filter that does the iteration for you and selects list
> items that match some criterion. For example:
>
> *- name: Extract matches for 'test'*
>
> * debug:** msg: "User {{ item.username }} has homedirectory {{
> item.homedir }} and shell {{ item.shell }}"*
>
> * loop: "{{ users | selectattr('username', 'equalto', 'test') }}"*
>
> produces this:
>
> TASK [Extract matches for 'test']
> ************************************************************************************************
> ok: [localhost] => (item={'username': 'test', 'homedir': '/home/test',
> 'shell': '/bin/bash'}) => {
> "msg": "*User test has homedirectory /home/test and shell /bin/bash*"
> }
>
>
>
> On 9/17/22 2:25 PM, Ahmed Elhusseini wrote:
>
> yes, it does. Thank you.
>
> but I have a question why I cannot use this:
>
> ---
> - name: show arrays
>
> hosts: ansible1.technyati.com
> vars_files:
> - /home/ansible/rhce8/lesson5/arrays/vars/users
>
>
> tasks:
> - name: print array values
> debug:
> msg: "User {{ users.test.username }} has homedirectory {{
> users.test.homedir }} and shell {{ users.test.shell }}"
>
> On Thursday, September 15, 2022 at 9:18:22 PM UTC+3 [email protected]
> wrote:
>
> Does this help?
>> *$ cat arrays.yml*
>>
>> ---
>> - name: show arrays
>> 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
>>
>> On Thursday, September 15, 2022 at 1:48:14 PM UTC-4 [email protected]
>> wrote:
>>
>>> cat vars/users
>>>
>>> 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
>>>
>>> cat arrays.yaml
>>> ---
>>> - name: show arrays
>>> hosts: ansible1
>>> vars_files:
>>> - vars/users
>>> tasks:
>>> - name: print array values
>>> debug:
>>> msg: "User {{ users.test.username }} has homedirectory {{
>>> users.test.homedir }} and shell {{ users.test.shell }}"
>>> ~
>>> I got the error below:
>>> fatal: [ansible1]: FAILED! => {"msg": "The task includes an option with
>>> an undefined variable. The error was: 'list object' has no attribute
>>> 'test'\n\nThe error appears to be in '/home/ansible/arrays.yml': line 7,
>>> column 7, but may\nbe elsewhere in the file depending on the exact syntax
>>> problem.\n\nThe offending line appears to be:\n\n tasks:\n - name:
>>> print array values\n ^ here\n"}
>>>
>>
--
You received this message because you are subscribed to the Google Groups
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/b1374388-1a3a-4755-9b82-b05979a8f9b1n%40googlegroups.com.