ansible - Ansible - 条件变量中是否存在变量值
问题描述
我正在运行一个任务,如果我之前设置的变量的值不存在于另一个变量中,我只想执行该任务。我尝试了以下方法,但出现模板错误:
name: get ip address
...
register: ipaddress
name: check cluster
....
register: topology
name: do my task
...
when: not topology is search(ipaddress)
有什么办法可以完成我正在做的事情吗?我使用的是 2.6 版。
解决方案
使用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)
(在会议中,无法对此进行测试,请检查并告诉我是否完全正确。)
推荐阅读
- angular - 如何在 app-routing.module.ts 中使用查询参数为子页面定义角度路由?
- java - 一次从数组中删除一项
- javascript - Finding the difference between 2 columns and printing on a 3rd
- python - 向 scipy 稀疏添加维度
- pid - 使用 Modelica 模型和 PID 控制器设计进行过程识别
- performance - GCP 不同地区 N2 sku 的不同性能水平
- android - 试图避免泛型:“类 Result 需要一个类型参数
" - winapi - 如何判断窗口句柄是否是主窗口句柄?
- amazon-web-services - aws 代码构建、代码部署、CI/CD 管道错误
- excel - 通过用户表单在某行中使用 VBA 代码填充数据