timorunge.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
)。
# 定义备份的最大年龄(以天为单位)
# 类型:整型
freeipa_server_backup_max_age: 14
# 定义何时应运行完全备份
# (这将停止并启动 ipa 服务!)
# 类型:字典
freeipa_server_backup_cron_full:
minute: "{{ 59 | random(seed=inventory_hostname) }}"
month: "*"
weekday: "*"
hour: 4
day: "*"
state: present
# 定义何时应运行在线备份
# 类型:字典
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 启动脚本。
# 本地测试:
curl https://raw.githubusercontent.com/timorunge/docker-test-runner/master/install.sh | sh
./docker_test_runner.py -f tests/docker_test_runner.yml
依赖项
此角色需要一个正在运行的 FreeIPA 服务器 (Github 仓库)。
如果您使用的操作系统未直接提供 FreeIPA 包,您可以使用上述 Ansible 角色。
在这种情况下,请确保将 freeipa_server_backup_install_pkgs
设置为 false
(这将禁用此角色的完整软件包安装)。
待办事项
- 添加加密备份的可能性(
--gpg
和--gpg-keyring=GPG_KEYRING
) - 将文件移到异地位置(s3,
rsync 和 ssh)
许可证
BSD 3-Clause "New" or "Revised" License
作者信息
- Timo Runge