Documentation

26. 备份和恢复 Tower

备份和恢复系统的功能已集成到 Tower 设置 playbook 中。请参阅 集群环境的备份和恢复 了解更多注意事项。

注解

在恢复时,请确保将其恢复到备份时的同一版本。但是,您应该始终使用最新的次版本来备份和/或恢复您的 Tower 安装版本。例如,如果您的 Tower 的当前版本是 3.7.x,则只使用 3.7.3 安装程序。

另外,备份和恢复*只能*通过您的 Ansible Tower 版本所支持的 PostgreSQL 版本进行。如需了解更多信息,请参阅 Ansible Automation Platform Installation and Reference Guide要求

Tower 设置 (setup) playbook 从您解压缩 Tower 安装程序 tarball 的路径作为 setup.sh 调用。它使用安装 (install) playbook 所用的同一清单文件。设置脚本使用以下参数来备份和恢复:

  • -b 执行数据库备份而不是安装。

  • -r 执行数据库恢复而不是安装。

作为 root 用户,使用正确的参数和 Tower 备份调用 setup.sh,或者按配置进行恢复。

root@localhost:~# ./setup.sh -b
root@localhost:~# ./setup.sh -r

备份文件将创建在 setup.sh 脚本存在的同一路径上。路径可以通过指定以下 EXTRA_VARS 进行修改:

root@localhost:~# ./setup.sh -e 'backup_dest=/path/to/backup_dir/' -b

除非为 EXTRA_VARS 提供了非默认路径,否则会使用默认恢复路径,如下例所示:

root@localhost:~# ./setup.sh -e 'restore_backup_file=/path/to/nondefault/backup.tar.gz' -r

可选,您可以将使用清单文件传递给设置脚本,以覆盖该文件:

setup.sh -i <inventory file>

26.1. 备份/恢复 Playbook

除了 setup.sh setup playbook 中包含的 install.yml 文件,还提供 backup.ymlrestore.yml 文件,以满足备份和恢复需求。

这些 playbook 提供两个功能:备份和恢复。

  • 整体备份将会备份以下内容:

    1. 数据库

    2. SECRET_KEY 文件

  • 针对每个系统的备份包括:

    1. 自定义用户配置文件

    2. 手动项目

  • 恢复会把备份的文件和数据恢复到新安装的、可正常工作的第二个 Tower 实例中。

恢复系统时,Tower 检查确认在开始恢复之前是否存在备份文件。如果备份文件不可用,您的恢复将会失败。

注解

确定您的 Tower 主机使用 SSH 密钥或主机文件中的用户/密码变量进行正确设置,且该用户有 sudo 访问权限。

26.2. 备份和恢复注意事项

  • 磁盘空间:检查您的磁盘空间需求,以确保有足够的空间备份配置文件、密钥及其他相关文件,以及 Tower 安装使用的数据库。

  • 系统凭证:确认您在使用本地数据库或远程数据库时具有所需的系统凭证。在本地系统上,您可能需要 root 或 sudo 访问权限,具体取决于如何设置凭证。在远程系统中,您可能需要不同的凭证,才能获得访问要备份或恢复的远程系统的访问权限。

  • 您应该始终使用发行版本的最新次要版本来备份和/或恢复您的 Tower 安装版本。例如,如果您的 Tower 的当前版本是 3.7.x,则只使用 3.7.3 安装程序。

  • 当使用 setup.sh 从默认恢复文件路径 /var/lib/awx 进行恢复时,仍然需要 -r 才能进行恢复,但它不再接受参数。如果需要非默认恢复文件路径,用户必须将此路径作为额外变量(root@localhost:~# ./setup.sh -e 'restore_backup_file=/path/to/nondefault/backup.tar.gz' -r)。

  • 如果备份文件放在与 setup.sh 安装程序相同的目录中,则恢复 (restore) playbook 将自动定位恢复的文件。在这种情况下,不需要使用 restore_backup_file 额外变量来指定备份文件的位置。

26.3. 集群环境的备份和恢复

集群环境的备份和恢复过程与单一安装类似,除了本节所述的注意事项。

  • 如果恢复到新集群,请确保在进行操作前关闭旧集群,因为它们在访问数据库时可能会相互冲突。

  • 每个节点的备份将只恢复到与备份具有相同主机名的节点。

当恢复到现有集群时,恢复包含:

  • PostgreSQL 数据库转储(dump)

  • UI 工件(包括在数据库转储中)

  • Tower 配置(从 /etc/tower 中获得)

  • Tower secret 密钥

  • 手动项目

26.3.1. 恢复到不同的集群

当将备份恢复到单独的实例或集群时,会保留 /etc/tower 下的手动项目和自定义设置。作业输出和作业事件存储在数据库中,因此不会受到影响。

恢复过程不会在恢复前修改实例组(它不会引入任何新的实例组)。与实例组关联的 Tower 资源可能需要被重新分配到新 Tower 集群中的实例组。