Thank you so much, I appreciated

On Saturday, September 17, 2022 at 11:36:31 PM UTC+3 uto...@gmail.com 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 uto...@gmail.com 
> 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 aelhuss...@gmail.com 
>> 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 ansible-project+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/b1374388-1a3a-4755-9b82-b05979a8f9b1n%40googlegroups.com.

Reply via email to