有条件的
changed_when: "'{{ my_var }}' not in users_list
我们如何强制使用ansible来匹配搜索过程中的整个单词?
即。假设:
my_var: admin
我希望只有"admin"
位于users_list
且不说"my_admin"
changed_when: "'\b{{ my_var }}\b' not in users_list
。
似乎不起作用。
答案 0 :(得分:2)
首先,Ansible中的when
语句是原始的Jinja2语句。不要在其中使用{{..}}
。
其次,如果users_list
是列表,则my_var not in users_list
将正常工作 - 仅当列表中没有admin
项时才会成立
如果user_list
是字符串(例如:user1,user2,user3
),您可以使用search
测试,例如:
---
- hosts: localhost
gather_facts: no
vars:
users_list: test1,1admin,test2,admin
my_var: admin
tasks:
- command: echo ok
changed_when: users_list is not search('(^|,)'+my_var+'(,|$)')