如果从旧版本的 automation controller 升级到 4.0 或更高版本,控制器可以检测到与机构、清单和作业模板关联的虚拟环境的以前版本,并通知您需要将它们迁移到新的 execution environment 模型。automation controller 的一个全新安装会在安装过程中创建两个 virtualenv:一个用于运行控制器本身,另一个用于运行 Ansible。与旧的虚拟环境一样,execution environments 允许控制器在一个稳定的环境中运行,同时允许您根据需要在 execution environment 中添加或更新模块以运行 playbook。如需更多信息,请参阅 Automation Controller User Guide 中的 Execution Environments。
通过将之前自定义虚拟环境中的设置迁移到新的 execution environment,您在 execution environment 中会有一个和以前一样的设置。使用本节中的 awx-manage
命令:
所有当前自定义虚拟环境及其路径列表(list_custom_venvs
)
查看依赖特定自定义虚拟环境的资源(custom_venv_associations
)
将特定的自定义虚拟环境导出为可用于迁移到 execution environment 的格式(export_custom_venv
)
在迁移前,建议您使用 awx-manage list
命令查看所有当前运行的自定义虚拟环境:
$ awx-manage list_custom_venvs
以下是运行这个命令时的输出示例:
以上输出显示了三个自定义虚拟环境及其路径。如果您有一个没有位于默认 /var/lib/awx/venv/
目录路径中的自定义虚拟环境,则它不会包含在这个输出中。
使用 _associations
命令查看自定义虚拟环境关联的机构、作业和清单源,以确定哪些资源依赖它们:
$ awx-manage custom_venv_associations /this/is/the/path/
以下是运行这个命令时的输出示例:
为您要迁移的虚拟环境选择一个路径,并在 awx-manage export
命令中指定:
$ awx-manage export_custom_venv /this/is/the/path/
生成的输出实际上就是执行 pip freeze
命令的结果。示例显示了所选自定义虚拟环境的内容:
注解
这些命令都可使用 -q
选项运行,该选项会删除每个输出中提供的指导性内容。
现在,您已拥有这个 pip freeze
数据的输出,您可以将这些数据粘贴到一个定义文件中,该文件可以使用 ansible-builder 来启动您的新 execution environment。任何人(包括普通用户和管理员)都可以使用 ansible-builder 创建一个 execution environment。详情请查看 Automation Controller User Guide 中的 构建一个 Execution Environment。