只有在variables包含特定string时才运行Ansible任务

我有多个任务取决于variable1的值。 我想检查值是否在{{variable1}},但我得到一个错误:

- name: do something when the value in variable1 command: <command> when: "'value' in {{variable1}}" 

我正在使用ansible 2.0.2

Solutions Collecting From Web of "只有在variables包含特定string时才运行Ansible任务"

如果variable1是一个字符串,并且正在搜索一个子字符串,这应该工作:

 when: '"value" in variable1' 

如果variable1是一个数组或字典,而不是in搜索确切的字符串作为其项目之一。

上面的答案在2.3.0.0中都没有用,但是下面是这样的:

 when: variable1 | search("value") 

我用了

 failed_when: not(promtool_version.stdout.find('1.5.2') != -1) 

意味着 – 仅在先前注册的变量“promtool_version”不包含字符串“1.5.2”时失败。