Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/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_Jmespath - Fatal编程技术网

带项目列表的Ansible筛选器

带项目列表的Ansible筛选器,ansible,jmespath,Ansible,Jmespath,我使用的是Ansible 2.10.7,我需要使用\u items列表过滤中的特定项 在将与_项一起使用之前消息如下所示: “可解释的事实”:{ “cvp_信息”:{ “版本”:“2020.2.3” }, “设备”:[ { “建筑”:“, “bootupTimeStamp”:1615810038.137913, “bootupTimestamp”:1615810038.137913, “合规性代码”:“, 剧本: --- -名称:演示cv_容器模块的剧本。 主机:cvp_服务器 连接:本地 收

我使用的是Ansible 2.10.7,我需要使用\u items列表过滤
中的特定项

在将
与_项一起使用之前
消息如下所示:

“可解释的事实”:{
“cvp_信息”:{
“版本”:“2020.2.3”
},
“设备”:[
{
“建筑”:“,
“bootupTimeStamp”:1615810038.137913,
“bootupTimestamp”:1615810038.137913,
“合规性代码”:“,
剧本:

---
-名称:演示cv_容器模块的剧本。
主机:cvp_服务器
连接:本地
收集事实:不
收藏:
-阿里斯塔
变量:
vars_文件:
-瓦拉斯·伊梅尔
任务:
-名称:“从CVP{{inventory_hostname}收集事实”
arista.cvp.cvu事实:
事实:
装置
-名称:“从CVP打印事实”
调试:
msg:“{item.name}”
带_项:“{{devices}”
在对_项“{devices}}”
使用
后,我看到它正在过滤大列表,然后我得到我想要过滤的输出:

ok: [hq] => (item={'hostname': 'rd-sw055', 'danzEnabled': False, 'mlagEnabled': False, 'streamingStatus': 'active', 'status': 'Registered','bootupTimeStamp': 1605618537.210405, 'internalBuildId': '8c8dfbf2-a4d1-420a-9c9c-59f6aa67a14e', 'taskIdList': [], 'tempAction': None, 'memTotal': 0, 'memFree': 0, 'sslConfigAvailable': False, 'sslEnabledByCVP': False, 'lastSyncUp': 0, 'type': 'netelement', 'dcaKey': None, 'containerName': 'HQ', 
  'name': 'rd-sw055','deviceSpecificConfiglets': ['rd-sw055'], 'imageBundle': ''}) => {
  "msg": "rd-sw055"
      
ok: [hq] => (item={'hostname': 'rd-sw01', 'danzEnabled': False, 'mlagEnabled': False, 'streamingStatus': 'active', 'status': 'Registered','bootupTimeStamp': 1605618537.210405, 'internalBuildId': '8c8dfbf2-a4d1-420a-9c9c-59f6aa67a14e', 'taskIdList': [], 'tempAction': None, 'memTotal': 0, 'memFree': 0, 'sslConfigAvailable': False, 'sslEnabledByCVP': False, 'lastSyncUp': 0, 'type': 'netelement', 'dcaKey': None, 'containerName': 'HQ',
  'name': 'rd-sw01','deviceSpecificConfiglets': ['rd-sw01'], 'imageBundle': ''}) => {
  "msg": "rd-sw01"
我希望它只显示带有
'name':'rd-sw01'
的项目,我该怎么做

我试过使用

loop\u控制:
标签:“{item.name}”
在剧本的结尾,但这将只显示名称值,而不是整个项目值

最终结果:

ok: [hq] => (item={'hostname': 'rd-sw01', 'danzEnabled': False, 'mlagEnabled': False, 'streamingStatus': 'active', 'status': 'Registered','bootupTimeStamp': 1605618537.210405, 'internalBuildId': '8c8dfbf2-a4d1-420a-9c9c-59f6aa67a14e', 'taskIdList': [], 'tempAction': None, 'memTotal': 0, 'memFree': 0, 'sslConfigAvailable': False, 'sslEnabledByCVP': False, 'lastSyncUp': 0, 'type': 'netelement', 'dcaKey': None, 'containerName': 'HQ',
  'name': 'rd-sw01','deviceSpecificConfiglets': ['rd-sw01'], 'imageBundle': ''}) => {
  "msg": "rd-sw01"
您确实需要一个条件:

-调试:
变量:项目
循环:“{{devices}}”
时间:item.name=='rd-sw01'
回路控制:
标签:“{item.name}”

或者更简单地说,跳过循环:

-调试:
变量:设备|选择属性(“名称”、“等式”、“rd-sw01”)

尝试了这两种方法,编辑后的方法没有“跳过”的效果更好,谢谢!