gcoop-libre.mysqldump
Ansible Rolle: gcoop-libre.mysqldump
Diese Rolle konfiguriert den Zugriff auf MySQL/MariaDB/Percona auf localhost und erstellt eine Cron-Datei für Backups mit dem Befehl mysqldump
.
Anforderungen
- python-mysqldb
- MySQL/MariaDB/Percona
Optional
Das Ansible Pass Lookup Plugin ermöglicht es, einen mit pass kompatiblen Passwortspeicher zu verwenden, um verschlüsselte Passwörter zu generieren. Es ahmt das Verhalten der Passwortsuche nach, verwendet jedoch pass
anstelle von Klartextdateien zur Speicherung der Passwörter.
Rollenvariablen
Verfügbare Variablen mit Standardwerten (siehe defaults/main.yml
).
gcoop_mysqldump_cron_entries:
- name: monatlich
minute: 0
hour: 2
day: '*/7'
format: '%b'
database: "{{ gcoop_mysqldump_database }}"
- name: täglich
minute: 0
hour: 1
day: '*'
format: '%a'
database: "{{ gcoop_mysqldump_database }}"
- name: stündlich
minute: 30
hour: '*'
day: '*'
format: ''
database: 'mysql'
Die Standardwerte von gcoop_mysqldump_cron_entries
erstellen die folgenden Dateien im Verzeichnis /backup/sql
:
Eine Datei pro Wochentag:
hostname-dbname1-lun.sql.gz
hostname-dbname1-mar.sql.gz
hostname-dbname1-mie.sql.gz
hostname-dbname1-jue.sql.gz
hostname-dbname1-vie.sql.gz
hostname-dbname1-sab.sql.gz
hostname-dbname1-dom.sql.gz
hostname-dbname2-lun.sql.gz
hostname-dbname2-mar.sql.gz
hostname-dbname2-mie.sql.gz
hostname-dbname2-jue.sql.gz
hostname-dbname2-vie.sql.gz
hostname-dbname2-sab.sql.gz
hostname-dbname2-dom.sql.gz
Eine Datei pro Monat (alle 7 Tage aktualisiert):
hostname-dbname1-ene.sql.gz
hostname-dbname1-feb.sql.gz
...
hostname-dbname1-dic.sql.gz
hostname-dbname2-ene.sql.gz
...
hostname-dbname2-feb.sql.gz
hostname-dbname2-dic.sql.gz
Eine Datei, die mit dem neuesten Dump aktualisiert wird (jede Stunde aktualisiert):
hostname-dbname1.sql.gz
hostname-dbname2.sql.gz
Syslog
Standardmäßig protokolliert die Rolle den Cron-Job im Syslog:
root@dbserver:/backup/sql# tail -f /var/log/syslog
Jun 25 02:30:02 dbserver mysqldump: Start: 2016-06-25 02:30 End: 2016-06-25 02:30 Dauer: 00:00:01 Datei: c2340030bd3ec4c5b890a7e7ae80fd18 /backup/sql/dbserver-mysql.sql.gz
Jun 25 02:30:02 dbserver mysqldump: Start: 2016-06-25 02:30 End: 2016-06-25 02:30 Dauer: 00:00:00 Datei: 5b5f36528df547e08f42db615e22ded6 /backup/sql/dbserver-information_schema-jun.sql.gz
Jun 25 02:30:02 dbserver mysqldump: Start: 2016-06-25 02:30 End: 2016-06-25 02:30 Dauer: 00:00:00 Datei: 6d952bdd7edf0e5663bbd487dbcaf46c /backup/sql/dbserver-mysql-jun.sql.gz
Abhängigkeiten
Keine.
Beispiel-Playbook
Wenn Sie ein neues System und einen MySQL-Benutzer mit dem Pass-Plugin erstellen möchten:
- hosts: localhost
become: yes
remote_user: debian
roles:
- role: gcoop-libre.mysqldump
gcoop_mysqldump_create_mysql_user: yes
gcoop_mysqldump_create_system_user: yes
gcoop_mysqldump_mysql_username: mysqlbackup
gcoop_mysqldump_mysql_password: "{{ lookup( 'pass', 'mysql/' + gcoop_mysqldump_mysql_username ) }}"
gcoop_mysqldump_mysql_root_password: "{{ lookup( 'pass', 'mysql/root' ) }}"
gcoop_mysqldump_system_password: "{{ lookup( 'pass', 'users/' + gcoop_mysqldump_mysql_username ) }}"
Wenn Sie bereits ein System und einen MySQL-Benutzer haben:
- hosts: localhost
become: yes
remote_user: debian
roles:
- role: gcoop-libre.mysqldump
gcoop_mysqldump_mysql_username: mark
gcoop_mysqldump_mysql_password: dadada
gcoop_mysqldump_mysql_root_password: 123456
Lizenz
GNU General Public License, GPLv3.
Autoreninformationen
Diese Rolle wurde 2016 von Osiris Alejandro Gomez erstellt, einem Arbeiterkooperativ von gcoop Cooperativa de Software Libre.
ansible-galaxy install gcoop-libre.mysqldump