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.

Über das Projekt

MySQL Backup using mysqldump

Installieren
ansible-galaxy install gcoop-libre.mysqldump
Lizenz
gpl-3.0
Downloads
2.2k