backup

Ansible Роль: Резервное Копирование

Выполняйте ежедневные, еженедельные и ежемесячные резервные копии файлов, баз данных MySQL и PostgreSQL на серверах Debian и Ubuntu.

Ротация резервных копий настраивается, например, вы можете использовать схему Дедушка-Отец-Сын

Ansible Galaxy

Зависимости

нет

Установка

Ansible 2+

Используйте ansible galaxy cli:

ansible-galaxy install alphanodes.backup

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

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

backup_dir: /srv/backups

Каталог для резервных копий. Убедитесь, что на этом разделе диска достаточно свободного места. Используйте кавычки, чтобы избежать проблем с преобразованием (например, с to_nice_yaml).

backup_dir_mode: '0755'

Права доступа к каталогу для backup_dir.

backup_dir_owner: root

Владелец каталога для backup_dir.

backup_dir_group: root

Группа каталога для backup_dir.

backup_max_days: 7

Максимальное количество дней для ежедневных наборов резервных копий. Это означает, что хранятся только backup_max_days наборов (дней). Более старые наборы удаляются автоматически. Значения должны быть => 1.

backup_max_weeks: 1

Максимальное количество недель для еженедельных наборов резервных копий. Это означает, что хранятся только backup_max_weeks наборов (недель). Более старые наборы удаляются автоматически. Значения должны быть => 1. Еженедельная резервная копия создается в первый день недели. В этот день создается только эта резервная копия (и никакая ежедневная - чтобы избежать дублирования).

backup_max_months: 1

Максимальное количество месяцев для ежемесячных наборов резервных копий. Это означает, что хранятся только backup_max_months наборов (месяцев). Более старые наборы удаляются автоматически. Значения должны быть => 1. Ежемесячная резервная копия создается в первый день месяца. В этот день создается только эта резервная копия (и никакая ежедневная или еженедельная - чтобы избежать дублирования).

backup_remote_host: ''

Имя хоста для синхронизации резервных копий, используемое при backup_remote_transfer.

backup_remote_port: ''

Порт для синхронизации резервных копий, используемый при backup_remote_transfer.

backup_remote_dir: ''

Удаленный каталог для backup_remote_host, используемый при backup_remote_transfer.

backup_remote_excludes:
  - '*.journal'
  - '.nfs*'
  - '*.tar'

Эти файлы исключены из синхронизации с удаленным хостом. Это используется, только если backup_remote_transfer - это rsync.

backup_rsync_options: '-avz --delete'

Опции rsync для backup_remote_transfer с использованием rsync.

backup_remote_transfer: rsync

Тип синхронизации. Возможные значения: rsync или lftp.

backup_remote_user: ''

Пользователь для удаленной синхронизации. Это используется только с backup_remote_transfer, если это lftp.

backup_remote_password: ''

Пароль для удаленной синхронизации. Это используется только с backup_remote_transfer, если это lftp.

backup_with_borg: ''

Если должен быть выполнен backupborg.

backup_db_dump_format: .sql.gz

Непакованные SQL файлы (.sql), а также bzip2 (.bz2), gzip (.gz) и xz. В данный момент используется только для дампов MySQL.

backup_with_mysql: false

Выполнять дамп резервного копирования MySQL (MariaDB). Все базы данных хранятся в отдельных файлах.

backup_with_postgresql: false

Выполнять дамп резервного копирования PostgreSQL. Все базы данных хранятся в отдельных файлах.

backup_with_mongodb: false

Выполнять дамп резервного копирования MongoDB. Все базы данных хранятся в одном архивном файле.

backup_mongodb_options: '--archive --gzip'

Опции для дампа mongodb.

backup_mysql_db_excludes:
  - performance_schema
  - information_schema
  - sys
backup_mysql_single_transaction: true
# backup_mysqldump_options: '--extended-insert=true --opt --single-transaction'

Пользовательские опции mysql (всегда используется sql.gz). Если установлено, используется нативный mysql_dump (без ansible). По умолчанию это не установлено.

backup_postgresqldump_options: "--no-owner -Fc"

Опции дампа PostgreSQL.

backup_create_hashfiles: false

Создать хэш-файлы всех наборов резервных копий.

backup_files_unsafe_writes: false

Если backup_files_unsafe_writes равно yes и измененные файлы обнаружены при создании tar-файлов, ошибки не сообщаются. tar запускается с дополнительными опциями --warning=no-file-removed --warning=no-file-changed --warning=no-file-ignored. Эта опция может быть переопределена для каждого набора с помощью unsafe_writes.

backup_sets: []

Наборы резервных копий для резервного копирования файлов. name используется как имя файла резервной копии. src - это каталог файла, который должен быть сохранен. unsafe_writes переопределяет backup_files_unsafe_writes. excludes - это список, который можно использовать для исключения файлов или каталогов.

backup_one_per_day_limit: true

Создавать только один набор резервных копий в день. Существующие наборы резервных копий того же дня будут удалены.

#sync_master: anything

Если sync_master определен, резервное копирование будет пропущено. Вы можете использовать его для распределённых сред.

backup_skip_sync_clients: true

Если sync_master определен, это означает, что это sync_client.

backup_pre_commands: []

Список команд, которые должны быть выполнены перед созданием дампа резервного копирования.

backup_post_commands: []

Список команд, которые выполняются после создания дампа резервного копирования.

Пример Playbook

- hosts: server-name
  vars:
    backup_sets:
      - name: etc
        src: /etc
  roles:
    - alphanodes.backup

Расширенный пример Playbook

- hosts: server-name
  vars:
    backup_max_days: 14
    backup_max_weeks: 4
    backup_max_months: 6
    backup_with_postgresql: true
    backup_dir_mode: '0770'
    backup_dir_group: postgres
    backup_sets:
      - name: etc
        src: /etc
      - name: jenkins
        src: /var/lib/jenkins
        unsafe_writes: true
        excludes:
          - builds
          - workspace
  roles:
    - alphanodes.backup

Лицензия

GPL Версия 3

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

Эта роль была создана в 2018 году AlphaNodes.

О проекте

Run daily backups for files, MySQL databases and PostgreSQL databases

Установить
ansible-galaxy install AlphaNodes/ansible-backup
Лицензия
gpl-3.0
Загрузки
8207
Владелец
Professional Services with Open Source