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"
Информация об авторе
- Тимо Рунге
FreeIPA Identity Management server backup.
ansible-galaxy install timorunge/ansible-freeipa-server-backup