gcoop-libre.mysqldump
Rola Ansible: gcoop-libre.mysqldump
Ta rola konfiguruje dostęp do MySQL/MariaDB/Percona na localhost i ustawia zadania cron do tworzenia kopii zapasowych przy użyciu polecenia mysqldump
.
Wymagania
- python-mysqldb
- MySQL/MariaDB/Percona
Opcjonalnie
Wtyczka Ansible Pass Lookup pozwala korzystać z kompatybilnego z pass
(https://www.passwordstore.org/) magazynu haseł do generowania zaszyfrowanych haseł. Naśladuje ona zachowanie wyszukiwania haseł, ale używa pass
zamiast plików plaintext do przechowywania haseł.
Zmienne roli
Dostępne zmienne z domyślnymi wartościami (patrz defaults/main.yml
).
gcoop_mysqldump_cron_entries:
- name: miesięczna
minute: 0
hour: 2
day: '*/7'
format: '%b'
database: "{{ gcoop_mysqldump_database }}"
- name: codzienna
minute: 0
hour: 1
day: '*'
format: '%a'
database: "{{ gcoop_mysqldump_database }}"
- name: godzinowa
minute: 30
hour: '*'
day: '*'
format: ''
database: 'mysql'
Domyślne gcoop_mysqldump_cron_entries
generują następujące pliki w katalogu /backup/sql
:
Jeden plik na każdy dzień tygodnia:
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
Jeden plik na każdy miesiąc (aktualizowany co 7 dni):
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
Jeden plik aktualizowany z najnowszą kopią (aktualizowany co 1 godzinę)
hostname-dbname1.sql.gz
hostname-dbname2.sql.gz
Syslog
Domyślnie, rola loguje zadania cron do 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 Duration: 00:00:01 File: 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 Duration: 00:00:00 File: 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 Duration: 00:00:00 File: 6d952bdd7edf0e5663bbd487dbcaf46c /backup/sql/dbserver-mysql-jun.sql.gz
Zależności
Brak.
Przykładowy Playbook
Jeśli chcesz stworzyć nowy system i użytkownika mysql używając wtyczki lookup pass:
- 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 ) }}"
Gdy masz już system i użytkownika mysql:
- 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
Licencja
GNU General Public License, GPLv3.
Informacje o autorze
Ta rola została stworzona w 2016 roku przez Osiris Alejandro Gomez, pracownika spółdzielni gcoop Cooperativa de Software Libre.
ansible-galaxy install gcoop-libre.mysqldump