【问题标题】:Ansible - Create a list with items and | listAnsible - 创建一个包含项目和 | 的列表列表
【发布时间】:2017-09-12 12:51:46
【问题描述】:

我正在尝试在 uri body 中创建一个列表。但是使用|list 不会将列表项附加到新列表中。

我的任务:

uri:
  url: "{{ URL }}"
  method: "POST"
  body:
    policies:
      - "default"
      - "{{ item | selectattr('policy', 'defined') | map(attribute='policy') | list }}"
    body_format: json
  with_items:
    - "{{ policy_config }}"

但这给了我:

policies:
  - \"default\"
  - \"[u'app1', u'app2']\"

所以它不会将 app1 和 app2 作为单独的列表项附加到新的列表项。我该如何解决这个问题?

提前非常感谢!

【问题讨论】:

    标签: ansible yaml jinja2


    【解决方案1】:

    构造单个列表。可能的示例之一:

    policies: "{{ ['default'] + item | selectattr('policy', 'defined') | map(attribute='policy') | list }}"
    

    如果json_query 在您的设置中可用,则更短:

    policies: "{{ ['default'] + item | json_query('[].policy') }}"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      相关资源
      最近更新 更多