首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >匹配时的不可接受筛选列表

匹配时的不可接受筛选列表
EN

Stack Overflow用户
提问于 2017-11-08 05:36:35
回答 1查看 8.4K关注 0票数 5

使用groups.all返回清单中所有主机的列表,是否有可能将包含唯一字符串的列表提取到另一个列表中。

当我调试groups.all时,我会得到清单中所有主机的如下列表。

代码语言:javascript
复制
"groups.all": [
    "host-1-unique",
    "host-2",
    "host-3",
    "host-4-unique",
    "host-5",
    "host-6-unique",
    "host-7"
],

在我的main.yml里

代码语言:javascript
复制
- set_fact:
  new_list: []

- set_fact: "{{ new_list }} + [ '{{ item }}' ]"
  with_items: groups.all
  when: 'unique' in groups.all

我得到的结果如下:

代码语言:javascript
复制
{
    "skipped": true,
    "_ansible_no_log": false,
    "skip_reason": "Conditional result was False",
    "_ansible_item_result": true,
    "item": "groups.all",
    "changed": false
}

有人知道为什么要跳过这个吗?如何从返回具有唯一字符串的元素列表的列表中提取?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-08 06:10:52

您可能想了解Jinja2 过滤器 (内置的和不可用的)。

代码语言:javascript
复制
- set_fact:
    new_list: "{{ groups['all'] | select('search','unique') | list }}"
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47172265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档