mysqldump

Ansible Роль: gcoop-libre.mysqldump

Эта роль настраивает доступ к MySQL/MariaDB/Percona на локальном хосте и создает cron-задание для резервного копирования с помощью команды mysqldump.

Требования

  • python-mysqldb
  • MySQL/MariaDB/Percona

Дополнительно

Плагин поиска Ansible Pass Lookup позволяет использовать совместимое хранилище паролей pass для генерации зашифрованных паролей. Он имитирует поведение поиска пароля, но использует pass вместо текстовых файлов для хранения паролей.

Переменные роли

Доступные переменные с умолчательными значениями (см. defaults/main.yml).

gcoop_mysqldump_cron_entries:

  - name: monthly
    minute: 0
    hour: 2
    day: '*/7'
    format: '%b'
    database: "{{ gcoop_mysqldump_database }}"

  - name: daily
    minute: 0
    hour: 1
    day: '*'
    format: '%a'
    database: "{{ gcoop_mysqldump_database }}"

  - name: hourly
    minute: 30
    hour: '*'
    day: '*'
    format: ''
    database: 'mysql'

По умолчанию gcoop_mysqldump_cron_entries генерирует следующие файлы в директории /backup/sql:

Один файл на каждый день недели:

    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

Один файл на каждый месяц (обновляется каждые 7 дней):

    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

Один файл, обновляемый с последним дампом (обновляется каждые 1 час)

    hostname-dbname1.sql.gz
    hostname-dbname2.sql.gz

Syslog

По умолчанию, роль записывает журналы cron в 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

Зависимости

Нет.

Пример плейбука

Если вы хотите создать новую систему и пользователя mysql, используя плагин поиска 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 ) }}"

Когда у вас уже есть система и пользователь 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

Лицензия

GNU General Public License, GPLv3.

Информация об авторе

Эта роль была создана в 2016 году Osiris Alejandro Gomez, рабочей кооперацией gcoop Cooperativa de Software Libre.

О проекте

MySQL Backup using mysqldump

Установить
ansible-galaxy install gcoop-libre/ansible-role-mysqldump
Лицензия
gpl-3.0
Загрузки
2192