Documentation

24. 备份和恢复

备份和恢复系统的功能已集成到平台设置的 playbook 中。请参阅 集群环境的备份和恢复 了解更多信息。

注解

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

另外,备份和恢复*只能*通过您当前的平台版本所支持的 PostgreSQL 版本进行。如需了解更多信息,请参阅 System Requirements.

平台设置 playbook 通过从您解压缩平台安装程序 tarball 的路径中运行 setup.sh 进行调用。它使用与安装(install)playbook 相同的清单文件。设置脚本使用以下参数来备份和恢复:

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

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

作为 root 用户,使用适当的参数以及配置的平台备份或恢复来调用 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>

24.1. 备份/恢复 Playbook

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

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

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

    1. 数据库

    2. SECRET_KEY 文件

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

    1. 自定义用户配置文件

    2. manual 项目

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

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

注解

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

24.2. 备份和恢复注意事项

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

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

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

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

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

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

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

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

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

  • PostgreSQL 数据库转储(dump)

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

  • 控制器配置(从 /etc/tower 中获得)

  • 控制器 secret 密钥

  • Manual 项目

24.3.1. 恢复到不同的集群

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

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