我有一个数组变量如下

registries:
- type: primary
  host: r1.example.com
- type: secondary
  host: r2.example.com

我只想从 json.j2 模板中的每个数组项呈现主机属性。
我在模板中尝试了以下内容:
{
  "insecure-registries": {{ registries | map(attribute='host') | to_json }}
}

不幸的是,它不起作用,但在运行剧本时会引发此错误:

最佳答案

map 返回一个特定的对象类型,它不是一个列表。在使用 to_json 过滤器将其提供给 list 之前,您需要将其转换为列表

{
  "insecure-registries": {{ registries | map(attribute='host') | list | to_json }}
}

关于python - ansible过滤器映射数组并放入json模板,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58868650/

10-13 04:49