在有条件的情况下
changed_when: "'{{ my_var }}' not in users_list
我们如何强制 ansible 在搜索过程中匹配整个单词?
即假设:
my_var: admin
我希望任务仅在"admin"in时更改users_list而不是说"my_admin"
我试过了
changed_when: "'\b{{ my_var }}\b' not in users_list。
似乎不起作用。
在有条件的情况下
changed_when: "'{{ my_var }}' not in users_list
我们如何强制 ansible 在搜索过程中匹配整个单词?
即假设:
my_var: admin
我希望任务仅在"admin"in时更改users_list而不是说"my_admin"
我试过了
changed_when: "'\b{{ my_var }}\b' not in users_list。
似乎不起作用。
首先,whenAnsible 中的语句是原始的 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+'(,|$)')