备份和恢复系统的功能已集成到 Tower 设置 playbook 中。请参阅 集群环境的备份和恢复 了解更多注意事项。
注解
在恢复时,请确保将其恢复到备份时的同一版本。但是,您应该始终使用最新的次要版本来备份和/或恢复您的 Tower 安装版本。例如,如果您的 Tower 的当前版本是 3.0.0、3.0.1 或 3.0.2,则使用 3.0.2 安装程序。
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>
除了 setup.sh
setup playbook 中包含的 install.yml
文件,还提供 backup.yml
和 restore.yml
文件,以满足备份和恢复需求。
这些 playbook 提供两个功能:备份和恢复。
整体备份将会备份以下内容:
数据库
SECRET_KEY
文件
针对每个系统的备份包括:
自定义用户配置文件
作业 stdout
手动项目
恢复会把备份的文件和数据恢复到新安装的、可正常工作的第二个 Tower 实例中。
恢复系统时,Tower 检查确认在开始恢复之前是否存在备份文件。如果备份文件不可用,您的恢复将会失败。
注解
确定您的 Tower 主机使用 SSH 密钥或主机文件中的用户/密码变量进行正确设置,且该用户有 sudo 访问权限。
磁盘空间:检查您的磁盘空间需求,以确保有足够的空间备份配置文件、密钥及其他相关文件,以及 Tower 安装使用的数据库。
系统凭证:确认您在使用本地数据库或远程数据库时具有所需的系统凭证。在本地系统上,您可能需要 root 或 sudo
访问权限,具体取决于如何设置凭证。在远程系统中,您可能需要不同的凭证,才能获得访问要备份或恢复的远程系统的访问权限。
您应当始终使用发行版本的最新次要版本来备份和/或恢复您的 Tower 安装版本。例如,如果您的 Tower 的当前版本是 3.0.0、3.0.1 或 3.0.2,则使用 3.0.2 安装程序。
当使用 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
额外变量来指定备份文件的位置。
集群环境的备份和恢复过程与单一安装类似,除了本节所述的注意事项。
如果恢复到新集群,请确保在进行操作前关闭旧集群,因为它们在访问数据库时可能会相互冲突。
每个节点的备份将只恢复到与备份具有相同主机名的节点。
当恢复到现有集群时,恢复包含:
PostgreSQL 数据库转储(dump)
UI 工件(包括在数据库转储中)
Tower 配置(从 /etc/tower
中获得)
Tower secret 密钥
手动项目
当将备份恢复到独立的实例或集群时,特定于主机的配置(包括手动项目、作业输出和 /etc/tower
下的自定义设置)不会恢复到新环境中的任何主机。
恢复过程不会在恢复前修改实例组(它不会引入任何新的实例组)。与实例组关联的 Tower 资源可能需要被重新分配到新 Tower 集群中的实例组。