Thanks Todd,

It works . 

"Not sure what you're trying to do with subelements."   -  I want to avoid 
 printing messages of  other dict items ( asia) from vars  during the 
execution (in the  skipping), which prints some sensitive info on the 
screen.  
Turning on no_log  is not helpful in registering the output. 
So , I was trying to call only the variables under n_america when I 
 execute the task  and i got it .  However for now skipping shows the items 
from asia during the play .



 

On Wednesday, March 15, 2023 at 12:03:29 AM UTC+5:30 Todd Lewis wrote:

> Not sure what you're trying to do with subelements.
> You could do this:
> ---
> - name: Print world details
>
>   hosts: localhost
>   gather_facts: no
>   vars:
>     world:
>       asia:
>         country: india
>         state:   maha
>         city:    mumbai
>       n_america:
>         nation:   canada
>         province: quebec
>         city:     montreal
>   tasks:
>     - name: Printing details of montreal
>       ansible.builtin.debug:
>         msg: "{{ item.value.city | default(item.key ~ ' has no city') }}"
>       loop: "{{ world | dict2items }}"
>       when: item.key == 'n_america'
>
> On Tuesday, March 14, 2023 at 8:58:27 AM UTC-4 Veera wrote:
>
>> I have the items defined in  the file  vars/myvars.yml as below:
>>
>> *world:*
>> *     asia:*
>> *         country:  india*
>> *         state:     maha         *
>> *         city:        mumbai*
>>          
>> *     n_america:*
>> *           nation:  canada*
>> *           province : quebec*
>> *           city:  montreal*
>>
>> When I try to  print them with a loop and subelements , i am missing 
>> something 
>>     * - name:  play to print the details*
>> *       hosts: localhost*
>> *       gather_facts: no*
>> *       vars: *
>> *            - vars/myvars.yml*
>> *       tasks:*
>> *           - name: printing the details of montreal*
>> *              debug:*
>> *                  msg: "{{  item[2] ['city']}}"*
>> *               loop: "{{   world | subelements('n_america') | 
>> dict2items   }}"*
>>
>> I receive a error like      "obj must be a list of dicts or a nested 
>> dict"}
>>                     
>>
>> msg: with "*world .**n_america.city" will work *
>> I want to print this through loop only , as i need to process other 
>> items  also.
>>
>> Thanks ,, 
>>   
>>
>

-- 
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/7bfd7866-57f4-4067-82d9-f1fd71786950n%40googlegroups.com.

Reply via email to