Regular Python should work in this case: when: myvariable in mylist
You need to quote the whole condition if it starts with a literal string, though: when: "'literal string' in mylist" On Saturday, March 8, 2014 1:54:24 PM UTC+1, David Adams wrote: > > My apologies if there's an obvious solution to this, but I've been unable > to find it. > > I have a list variable defined with some values, eg: > > mylist: > - aaa > - bbb > - ddd > > I need to execute a task conditionally based on whether the value of a > variable is a member of that list. In other words, if myvar is set to > "aaa", "bbb", or "ddd" I want to execute my task, but if it's set to > anything else the task should be skipped. > > When I ran into this, I expected to find a Jinja filter called something > like "contains" or "includes" such that I could do this: > > tasks: > - debug: msg="Found the value in mylist" > when: mylist|contains(myvariable) > > But I haven't been able to find any filters that do this. I did come up > with this alternative solution: > > tasks: > - debug: msg="Found the value in mylist" > when: mylist|intersect([myvariable])|count > 0 > > But that feels really hacky and is hard to read at a glance. Is there a > Jinja filter I'm overlooking, or some better way to do this? > > Thanks! > > -dave > -- 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/1bd3752e-fac8-4263-8cca-b0f20fe64229%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
