Ansible-条件,如果变量中存在变量值

时间:2018-10-23 08:35:42

标签: ansible

我正在运行一个任务,如果我之前设置的变量的值在另一个变量中不存在,则我只想执行该任务。我已经尝试了以下方法,但是由于模板错误而出错:

name: get ip address
...
register: ipaddress

name: check cluster
....
register: topology

name: do my task
...
when: not topology is search(ipaddress)

有什么方法可以完成我的工作吗?我正在使用2.6版。

1 个答案:

答案 0 :(得分:0)

使用regex_filter

  

正则表达式过滤器

     

要使用正则表达式搜索字符串,请使用“ regex_search”过滤器:

在“ foobar”中搜索“ foo”

{{ 'foobar' | regex_search('(foo)') }}

如果找不到匹配项,将返回空

{{ 'ansible' | regex_search('(foobar)') }}

在多行模式下不区分大小写的搜索

{{ 'foo\nBAR' | regex_search("^bar", multiline=True, ignorecase=True) }}

在您的示例中,作一些假设-

when: not topology | regex_search(ipaddress, multiline=True)

(在一次会议中,无法测试,请检查它,如果不正确,请通知我。)