Recently I had to write templates containing somewhat long filter 
pipelines. Part of the logic involved lookuping current output of the 
pipeline in a dictionary (hostvars) and then extracting the value of a 
field of the resulting dictionary. In order to keep things decoupled I 
wrote two almost trivial plugins 
<https://gist.github.com/ValFadeev/9bf421fc1262c9ec7e31>. Here an example:

 - name: find another host to join to form a cluster (e.g. Consul) 
   set_fact: 
     host_to_join: > 
     {{ 
       groups['my_group'] | difference([inventory_hostname]) 
                          | list 
                          | random 
                          | find_in(hostvars) 
                          | get_key('ec2_private_ip_address') 
     }} 

Just wondering whether there are other existing ways of achieving the same 
result, with/without plugins, as surely someone must have faced a similar 
task.

Thanks
Valentin

-- 
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 post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/0b9c36de-08e3-41df-a21c-1d2e8df19e1b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to