0

在有条件的情况下

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

似乎不起作用。

4

1 回答 1

3

首先,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+'(,|$)')
于 2017-04-10T16:29:08.073 回答