Ansible字典+事实集+ JSON

时间:2019-03-25 11:23:34

标签: json ansible ansible-facts ansible-template

我需要存储属性的动态列表,并在每个主机的set_fact中使用它们:

[{
    "ip_address": "10.0.0.1",
    "properties": ...
},
{
    "ip_address": "10.0.0.2",
    "properties": ...
}]

我的属性为10.0.0.2的地方具有以下属性:

10.0.0.1
  foo=bar
  foo2=bar2
10.0.0.2
  randomKey=bar3 

注意:它们的密钥不是静态的/提前知道的。主机也可以具有零个,一个或多个不同的密钥。

在JSON中建模然后在set_fact中使用它们的最有效方法是什么?

以下是我尝试过的一些事情:

[{
    "ip_address": "10.0.0.1",
    "property1": "value",
    "properties" : [
      {"foo": "bar"},
      {"foo2": "bar2"}
     ]
},
...]

    [{
    "ip_address": "10.0.0.1",
    "property1": "value",
    "properties" : {"foo": "bar", "foo2": "bar2"}
},
...]

vars:
  hostList: "{{ lookup('file', 'hostListMetaData.json') }}"

- name: "Debugging"
  debug:
    msg: "{{ item.properties }} +++"
  loop: "{{ hostList }}"
when: item.ip_address == inventory_hostname

0 个答案:

没有答案