文档

26. 备份和恢复 Tower

备份和恢复系统功能已集成到 Tower 设置剧本中。有关其他注意事项,请参阅 集群环境的备份和恢复

注意

恢复时,请确保恢复到备份的相同版本。但是,您应始终使用最新的小版本进行备份和/或恢复 Tower 安装版本。例如,如果您当前使用的 Tower 版本是 3.7.x,则仅使用 3.7.3 安装程序。

此外,备份和恢复仅适用于当前 Ansible Tower 版本支持的 PostgreSQL 版本。有关更多信息,请参阅 *Ansible Automation Platform 安装和参考指南* 中的 要求

Tower 设置剧本通过解压缩 Tower 安装程序 tarball 的路径调用为 setup.sh。它使用与安装剧本相同的清单文件。设置脚本接受以下用于备份和恢复的参数

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

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

以 root 用户身份,使用适当的参数调用 setup.sh,并根据配置对 Tower 进行备份或恢复。

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. 备份/恢复剧本

除了与 setup.sh 设置剧本一起包含的 install.yml 文件外,还有 backup.ymlrestore.yml 文件用于您的备份和恢复需求。

这些剧本有两个功能 - 备份和恢复。

  • 整体备份将备份

    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_backup_file 额外的变量来指定备份文件的位置。

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

集群环境的备份和恢复过程与单个安装类似,但有一些在本节中描述的注意事项。

  • 如果恢复到新的集群,请确保在继续之前关闭旧集群,因为它们在访问数据库时可能会发生冲突。

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

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

  • PostgreSQL 数据库的转储

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

  • Tower 配置(从 /etc/tower 获取)

  • Tower 密钥

  • 手动项目

26.3.1. 恢复到不同的集群

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

恢复过程不会改变恢复之前存在的实例组(也不会引入任何新的实例组)。恢复的 Tower 资源,如果与实例组相关联,则可能需要重新分配到新的 Tower 集群上的实例组。