5
说我有这个词典如何循环Ansible中的这本字典?
war_files:
server1:
- file1.war
- file2.war
server2:
- file1.war
- file2.war
- file3.war
和现在我只想遍历每个项目(键),然后在上的键(值),每个项目。我做到了这一点
- name: Loop over the dictionary
debug: msg="Key={{ item.key }} value={{ item.value }}"
with_dict: "{{ war_files }}"
我明白了。这当然是正确的,但不是我想要的。
ok: [localhost] => (item={'value': [u'file1.war', u'file2.war'], 'key': u'server1'}) => {
"item": {
"key": "server1",
"value": [
"file1.war",
"file2.war"
]
},
"msg": "Server=server1, WAR=[u'file1.war', u'file2.war']"
}
ok: [localhost] => (item={'value': [u'file1.war', u'file2.war', u'file3.war'], 'key': u'server2'}) => {
"item": {
"key": "server2",
"value": [
"file1.war",
"file2.war",
"file3.war"
]
},
"msg": "Server=server2, WAR=[u'file1.war', u'file2.war', u'file3.war']"
}
我想要得到的输出,说
"msg": "Server=server1, WAR=file1.war"
"msg": "Server=server1, WAR=file2.war"
"msg": "Server=server2, WAR=file1.war"
"msg": "Server=server2, WAR=file2.war"
"msg": "Server=server2, WAR=file3.war"
IOW,我怎么能写在字典迭代任务如此这般通过每个键,然后在项目的每个关键之内?实质上,我有一个嵌套数组,并想迭代它呢?
谢谢!这是我喜欢Ansible上的厨师的地方,我可以在这里写Ruby来迭代数据结构。实质上,这就是你在Python中所做的,但是这种语法只是丑陋的。 –
@ChrisF我写了jinja2,不是python。 –
但是,我同意你的看法。由于这个原因,木偶和厨师比Ansible有优势。 –