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 [email protected].
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