Ich habe eine Variable wie folgt strukturiert. Ich habe erfolgreich diese mit with_dict
mit einem einzigen Schlüssel in der das mysql_db
ansible Modul, wie dies mit angewendet Dies wird accessible_from
Iterate eine Liste in einem Wörterbuch in ansible
vars:
mysql_dbs:
db1:
user: db1_user
pass: "password"
accessible_from: localhost
db2:
user: db2_user
pass: "password2"
accessible_from: '%'
verwendet:
- name: Configure mysql users
mysql_user: name={{ item.value.user }} password={{ item.value.pass }} host={{ item.value.accessible_from | default('localhost')}} priv={{ item.key }}.*:ALL state=present
with_dict: "{{ mysql_dbs }}"
würde ich accessible_from
mag die Fähigkeit zu haben, zu sein eine Liste. Dabei spielt es keine Rolle, ob es hat eine Liste zu sein, aber ein einzelner Schlüssel/Wert-Paar ist nicht genug :) So zum Beispiel:
vars:
mysql_dbs:
db1:
user: db1_user
pass: "password"
accessible_from:
- server1
- server2
- localhost
db2:
user: db2_user
pass: "password"
accessible_from:
- '%'
So - das Ziel ist, alle DBs zu erstellen und Benutzer in einem Spiel. Ich habe versucht, mit with_subelements
herum zu spielen, ohne Erfolg. Ist das tatsächlich möglich? Oder ist es notwendig, die Daten neu zu strukturieren oder das Spiel neu zu schreiben? Ich werde das tun, wenn ich muss, aber ich habe mich gefragt, ob es einen anderen Weg gibt.
Ich nehme diese ' "{{mysql_dbs | default ('localhost')}}"' string wird standardmäßig 'localhost', wenn ganze' mysql_dbs' Objekt ist nicht definiert. .. –
Falsch ausschneiden und einfügen. Standard entfernt Danke, @KonstantinSuvorov – gile