Say mam tego słownikaJak zapętlić ten słownik w Ansible?
war_files:
server1:
- file1.war
- file2.war
server2:
- file1.war
- file2.war
- file3.war
i teraz po prostu chcę pętli na każdej pozycji (key), a następnie na każdej pozycji w kluczu (wartości). Zrobiłem to:
I rozumiem to. Jest to oczywiście poprawne, ale NIE jest to, czego chcę.
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']"
}
Chcę uzyskać dane wyjściowe, które mówi
"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, jak mogę napisać zadanie iteruje słownika więc przechodzi przez każdy klucz, a następnie elementy wewnątrz każdego klucza? W gruncie rzeczy mam zagnieżdżoną tablicę i chcę ją powtórzyć?
Dziękujemy! To jest miejsce, w którym lubię Chef over Ansible, gdzie mogę napisać Ruby do iteracji nad strukturą danych. Zasadniczo to właśnie robiłeś z Pythonem, ale ta składnia jest po prostu brzydka. –
@ChrisF Napisałem jinja2, a nie python. –
Ale tak, zgadzam się z tobą. Marionetka i szef kuchni mają przewagę nad Ansible z tego powodu. –