Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ansible &引用;搜索“;“中的字符串”;什么时候;条件语句?_Ansible - Fatal编程技术网

Ansible &引用;搜索“;“中的字符串”;什么时候;条件语句?

Ansible &引用;搜索“;“中的字符串”;什么时候;条件语句?,ansible,Ansible,在下面的剧本中,我必须在when:语句中使用search。当:item.name是search(domain_list)时,您能告诉我语句有什么问题吗domain_list是在files.yml中定义的数组变量,如下所示 --- -主机:本地主机 收集事实:错误 连接:本地 vars_文件: -files.yml 变量: 下文: -名称:ironman.vcloud-lab.com 连接状态:已连接 -名称:hulk.vcloud-lab.com 连接状态:已连接 -姓名:captain.vcl

在下面的剧本中,我必须在
when:
语句中使用
search
。当:item.name是search(domain_list)时,您能告诉我语句
有什么问题吗
domain_lis
t是在
files.yml
中定义的数组变量,如下所示

---
-主机:本地主机
收集事实:错误
连接:本地
vars_文件:
-files.yml
变量:
下文:
-名称:ironman.vcloud-lab.com
连接状态:已连接
-名称:hulk.vcloud-lab.com
连接状态:已连接
-姓名:captain.vcloud-lab.com
连接状态:已断开
-名称:hawkeye.vcloud-lab.com
连接状态:已断开
任务:
-名称:仅连接的esxi的筛选器列表
设定事实:
esxilist:{{esxilist}默认值([])+[item]}”
带_项:“{{infra}}”

当:item.name为search(domain_list)##时,选择短名称并测试列表中是否存在。例如,使用regex_replace

-名称:仅连接esxi的筛选器列表
设定事实:
esxilist:{{esxilist}默认值([])+[item]}”
循环:“{infra}}”
时间:\域中的\u短\u列表
变量:
_缩写:{{item.name | regex_replace('^(.*?\\.(.*)$','\\1')}
给予

esxilist:
-连接状态:已连接
名称:ironman.vcloud-lab.com
-连接状态:已断开
姓名:captain.vcloud-lab.com

下一个选项是拆分字符串并选择第一项。比如说

vars:
_缩写:{{item.name.split('.')|first}”
给出了相同的结果


看。比如说

-hosts:localhost
变量:
域列表:[a,b]
下文:
-{name:a.vcloud-lab.com,状态:CONNECTED}
-{名称:b.vcloud-lab.com,状态:断开连接}
-{名称:c.vcloud-lab.com,状态:CONNECTED}
任务:
-设定事实:
l1:{{l1}默认值([])+[item]}”
带_项:“{{infra}}”
时间:\域中的\u短\u列表
变量:
_缩写:{{item.name.split('.')|first}”
-调试:
变量:l1

谢谢,成功了!然而,它在类似的剧本中不起作用,但在更复杂的格言中起作用。我应该在这里做什么改变:“``请看任务”--设置事实:“在那里”。再次感谢你!请看这篇文章的第一个元素,``我试过:``简短:“{{{my_ontap.ontap\info.volume\u info[item].split(':')| first}}”,但它不起作用。“AWS_logs”是“volume_list”的值,因为实例分析复杂代码非常耗时。很抱歉打开一个新问题,并提出它。你的工作是删除不相关的代码和数据。是的。我在开始时已经尝试并使用了一个简化的代码。但是,真正的代码/指令更复杂。再次感谢,不客气。关键是删除不相关的代码,并使之成为现实。我已经添加了一个例子,说明它在实践中的意义。