我需要存储属性的动态列表,并在每个主机的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