Hey!
Ich würde gerne alle Datenbanken außer Datenbank x auf Server a in eine Datei speichern.
Dafür habe ich bislang das hier geschrieben: (Passwort ist nur auf einem testserver so der aus dem internet nicht erreichbar ist ^^ )
- name: get all db
command: mysql -u root -p=root -Bse 'show databases'
register: database_all
- name: set db
set_fact: db_all="{{ database_all.stdout_lines }}"
- name: get all dbs that should be backuped
set_fact: database_different="{{ db_all | difference("database_test") || list }}"
- name: dump db
shell: "/usr/bin/mysqldump -Q --single-transaction -u root -h localhost -p=root database_different | /bin/gzip -9 > /root/mysql_backups/file.gz"
- name: debug db #war nur ein test um zu schauen ob alles richtig ist
debug:
msg: "{{ db_all }}"
Bei der dritten Task kommt nun folgende Fehlermeldung: "template error while templating string: expected token 'name', got '|'. String: {{ db_all | difference(\"database_test\") || list }}"
Soweit ich das verstehe, scheint db_all keine Liste zu sein?
Und irgendwie befürchte ich auch, dass ich bei difference nicht einfach einen String mit dem Namen von Datenbank x angeben kann, richtig?
Wie löse ich das dann?
Desweiteren ist mir gerade aufgefallen, dass ich die Variable database_different gar nicht so in den shell Befehl packen kann, sondern den Befehl dann erst zwischenspeichern muss damit das geht.... oder?
Sind viele Fragen, ich weiß... Tut mir leid ^^
Trotzdem hoffe ich auf ein bisschen Hilfe. Sitze da nun schon Stunden dran und komme nicht vorran.
Danke euch!
Frage
Gast deRoOx
Hey!
Ich würde gerne alle Datenbanken außer Datenbank x auf Server a in eine Datei speichern.
Dafür habe ich bislang das hier geschrieben: (Passwort ist nur auf einem testserver so der aus dem internet nicht erreichbar ist ^^ )
- name: get all db command: mysql -u root -p=root -Bse 'show databases' register: database_all - name: set db set_fact: db_all="{{ database_all.stdout_lines }}" - name: get all dbs that should be backuped set_fact: database_different="{{ db_all | difference("database_test") || list }}" - name: dump db shell: "/usr/bin/mysqldump -Q --single-transaction -u root -h localhost -p=root database_different | /bin/gzip -9 > /root/mysql_backups/file.gz" - name: debug db #war nur ein test um zu schauen ob alles richtig ist debug: msg: "{{ db_all }}"
Bei der dritten Task kommt nun folgende Fehlermeldung: "template error while templating string: expected token 'name', got '|'. String: {{ db_all | difference(\"database_test\") || list }}"
Soweit ich das verstehe, scheint db_all keine Liste zu sein?
Und irgendwie befürchte ich auch, dass ich bei difference nicht einfach einen String mit dem Namen von Datenbank x angeben kann, richtig?
Wie löse ich das dann?
Desweiteren ist mir gerade aufgefallen, dass ich die Variable database_different gar nicht so in den shell Befehl packen kann, sondern den Befehl dann erst zwischenspeichern muss damit das geht.... oder?
Sind viele Fragen, ich weiß... Tut mir leid ^^
Trotzdem hoffe ich auf ein bisschen Hilfe. Sitze da nun schon Stunden dran und komme nicht vorran.
Danke euch!
Link zu diesem Kommentar
Auf anderen Seiten teilen
3 Antworten auf diese Frage
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.