I like Kai's suggestion and will likely end up breaking the tasks into multiple chunks using 'when'. However for completeness' sake, I also got the following to work:
play_hosts | union(optional_ip is defined | ternary([optional_ip], [])) (ie: union the variable if it's defined, otherwise union empty list). On Thursday, August 24, 2017 at 10:36:41 AM UTC-4, Jean-Francois Bibeau wrote: > > Hi, > > Trying to do the following, and struggling to find a way to do this. > > I build a list of strings, and want to conditionally append a string at > the end of the list, but only if the variable is defined. > > This works fine: > > play_hosts | union([optional_ip]) > > > Which appends optional_ip to play_hosts, however if optional_ip is not > defined, I would like to simply drop the union filter... If I change it to: > > play_hosts | union([optional_ip | default(None)]) > > It appends an empty string. I was hoping I could maybe use "or omit" after > the union but can't quite get that to work. > > Any suggestions? > > 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 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/b51295d4-5358-4314-b95d-17994207fcf0%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
