Documentation

3. 升级至 Execution Environments

如果从旧版本的 automation controller 升级到 4.0 或更高版本,控制器可以检测到与机构、清单和作业模板关联的虚拟环境的以前版本,并通知您需要将它们迁移到新的 execution environment 模型。automation controller 的一个全新安装会在安装过程中创建两个 virtualenv:一个用于运行控制器本身,另一个用于运行 Ansible。与旧的虚拟环境一样,execution environments 允许控制器在一个稳定的环境中运行,同时允许您根据需要在 execution environment 中添加或更新模块以运行 playbook。如需更多信息,请参阅 Automation Controller User Guide 中的 Execution Environments

3.1. 将旧的 venv 迁移到 execution environments

通过将之前自定义虚拟环境中的设置迁移到新的 execution environment,您在 execution environment 中会有一个和以前一样的设置。使用本节中的 awx-manage 命令:

  • 所有当前自定义虚拟环境及其路径列表(list_custom_venvs

  • 查看依赖特定自定义虚拟环境的资源(custom_venv_associations

  • 将特定的自定义虚拟环境导出为可用于迁移到 execution environment 的格式(export_custom_venv

  1. 在迁移前,建议您使用 awx-manage list 命令查看所有当前运行的自定义虚拟环境:

$ awx-manage list_custom_venvs

以下是运行这个命令时的输出示例:

_images/venv-awx-manage-list-custom-venvs.png

以上输出显示了三个自定义虚拟环境及其路径。如果您有一个没有位于默认 /var/lib/awx/venv/ 目录路径中的自定义虚拟环境,则它不会包含在这个输出中。

  1. 使用 _associations 命令查看自定义虚拟环境关联的机构、作业和清单源,以确定哪些资源依赖它们:

$ awx-manage custom_venv_associations /this/is/the/path/

以下是运行这个命令时的输出示例:

_images/venv-awx-manage-custom-venv-associations.png
  1. 为您要迁移的虚拟环境选择一个路径,并在 awx-manage export 命令中指定:

$ awx-manage export_custom_venv /this/is/the/path/

生成的输出实际上就是执行 pip freeze 命令的结果。示例显示了所选自定义虚拟环境的内容:

_images/venv-awx-manage-export-custom-venvs.png

注解

这些命令都可使用 -q 选项运行,该选项会删除每个输出中提供的指导性内容。

现在,您已拥有这个 pip freeze 数据的输出,您可以将这些数据粘贴到一个定义文件中,该文件可以使用 ansible-builder 来启动您的新 execution environment。任何人(包括普通用户和管理员)都可以使用 ansible-builder 创建一个 execution environment。详情请查看 Automation Controller User Guide 中的 构建一个 Execution Environment