freeipa_server_backup

freeipa_server_backup

Эта роль отвечает за создание резервных копий ваших серверов FreeIPA.

Требования

Для этой роли требуется Ansible 2.6.0 или выше.

Вы можете просто использовать pip для установки (и определения) стабильной версии:

pip install ansible==2.7.9

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

Чтобы использовать эту роль, ознакомьтесь с зависимостями.

Также посмотрите на официальную документацию.

Установка

ansible-galaxy install timorunge.freeipa_server_backup

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

Переменные, которые можно передать этой роли, и краткое описание: (Для всех переменных смотрите defaults/main.yml)

На данный момент нет возможности задать каталог для резервных копий. Это ограничение самой команды ipa-backup (по умолчанию используется /var/lib/ipa/backup).

# Определяет максимальный срок хранения резервных копий (в днях)
# Тип: Int
freeipa_server_backup_max_age: 14

# Определяет время, когда должна выполняться полная резервная копия
# (это остановит и запустит службы ipa!)
# Тип: Dict
freeipa_server_backup_cron_full:
  minute: "{{ 59 | random(seed=inventory_hostname) }}"
  month: "*"
  weekday: "*"
  hour: 4
  day: "*"
  state: present

# Определяет время, когда должна выполняться онлайн резервная копия
# Тип: Dict
freeipa_server_backup_cron_online:
  minute: "{{ 59 | random(seed=inventory_hostname) }}"
  month: "*"
  weekday: "*"
  hour: "*"
  day: "*"
  state: present

Примеры

1) Установить резервное копирование сервера FreeIPA с настройками по умолчанию

- hosts: freeipa-server-backup
  roles:
    - timorunge.freeipa_server_backup

2) Установить резервное копирование сервера FreeIPA с пользовательскими настройками

- hosts: freeipa-server-backup
  vars:
    freeipa_server_backup_max_age: 7
    freeipa_server_backup_cron_full:
      day: "*"
      hour: 3
      minute: "11"
      month: "*"
      state: present
      weekday: "*"
    freeipa_server_backup_cron_online:
      day: "*"
      hour: "*"
      minute: 33
      month: "*"
      state: present
      weekday: "*"
    freeipa_server_backup_cron_delete:
      day: "*"
      hour: 3
      minute: 55
      month: "*"
      state: present
      weekday: "*"
  roles:
    - timorunge.freeipa_server_backup

3) Установить резервное копирование сервера FreeIPA и переместить данные в другое место (через rsync)

- hosts: freeipa-server-backup
  vars:
    freeipa_server_backup_mv_location: rsync
    freeipa_server_backup_rsync_opts:
      - "-avq"
      - "--ignore-existing"
      - '-e "ssh -i /home/ipa-backups/.ssh/id_rsa"'
    freeipa_server_backup_rsync_dest: [email protected]:/var/backups/ipa-backup
  roles:
    - timorunge.freeipa_server_backup

Тестирование

Статус сборки

Тесты проводятся с помощью Docker и docker_test_runner, который поднимает следующие контейнеры:

  • CentOS 7
  • Ubuntu 16.04 (Xenial Xerus)
  • Ubuntu 17.10 (Artful Aardvark)
  • Ubuntu 18.04 (Bionic Beaver)
  • Ubuntu 18.10 (Cosmic Cuttlefish)

Ansible 2.7.9 установлен на всех контейнерах и применяет тестовый плейбук локально.

Для получения дополнительных деталей и проверок смотрите конфигурацию docker_test_runner и Docker entrypoint.

# Локальное тестирование:
curl https://raw.githubusercontent.com/timorunge/docker-test-runner/master/install.sh | sh
./docker_test_runner.py -f tests/docker_test_runner.yml

Зависимости

Эта роль требует работающего FreeIPA Server (Github Repo).

Если вы используете операционную систему, в которой пакет FreeIPA не доступен в репозиториях, вы можете использовать упомянутую выше роль Ansible.

В этом случае убедитесь, что у вас установлено freeipa_server_backup_install_pkgs в false (это отключит полную установку пакетов для этой роли).

Планы

  • Добавить возможность шифрования резервных копий (--gpg и --gpg-keyring=GPG_KEYRING)
  • Перемещение файлов на удаленное хранилище (s3, rsync & ssh)

Лицензия

Лицензия BSD 3-Clause "New" или "Revised"

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

  • Тимо Рунге
Установить
ansible-galaxy install timorunge/ansible-freeipa-server-backup
Лицензия
Unknown
Загрузки
9103
Владелец