带有json_query的ansible过滤器

时间:2017-07-25 08:14:28

标签: ansible jinja2 jmespath

我写这个:

- name: test for seed
  debug:
    var: hostvars|json_query("*.ansible_host")

它打印每个主机。但这不会过滤主机:

- name: test for seed
  debug:
    var: hostvars|json_query("*[?ansible_host=='192.168.56.101']")

它只打印一个空列表,而我确定这个主机存在。这是相关的库存线:

[build-servers]
build-server ansible_host=192.168.56.101

我做错了吗?

1 个答案:

答案 0 :(得分:3)

您应该过滤结果列表,而不是原始哈希:* | [?ansible_host=='192.168.168.21']

P.S。您通常不希望使用var模块的debug选项来打印Jinja语句,而是使用msg