Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.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,在我的职责范围内,我有: rcube_plugins_repo: - name: 'account_details' repo: 'https://github.com/texxasrulez/account_details' config: 'yes' - name: 'delete_old' repo: 'https://github.com/ron4mac/roundcube_delete_old' and so on... 在我的一项

在我的职责范围内,我有:

rcube_plugins_repo:
    - name: 'account_details'
      repo: 'https://github.com/texxasrulez/account_details'
      config: 'yes'
    - name: 'delete_old'
      repo: 'https://github.com/ron4mac/roundcube_delete_old'
and so on...
在我的一项任务中,我需要检查
rcube\u plugins\u repo中是否存在
account\u details

我该怎么做

我想到了这样的事情:

when: "rcube_plugins_repo.name['account_details'] is defined"
但是它不起作用,我知道如何正确地写这个


非常感谢

rcube\u plugins\u repo
是一个dict
列表,因此
rcube\u plugins\u repo.name
首先不起作用。即使您得到了一个值,您也必须与account\u details进行比较,而不是检查
account\u details
子元素

筛选器允许您根据筛选器筛选DICT列表。在这里,您希望根据name属性的值进行筛选

我尝试了以下方法,似乎有效:

 when: "{{ rcube_plugins_repo|selectattr('name', 'eq', 'account_details')|list }}"
如果筛选列表为空,则不满足条件