搜索

16.4. Ansible Galaxy 支持

download PDF

在项目更新结束时,自动化控制器会在 roles 目录中搜索 requirements.yml 文件,位于 < project-top-level-directory>/roles/requirements.yml

如果找到这个文件,以下命令会自动运行:

ansible-galaxy role install -r roles/requirements.yml -p <project-specific cache location>/requirements_roles -vvv

此文件允许您引用 Ansible Galaxy 角色或其他可以与您自己的项目一起签出的其他存储库中的角色。增加 Ansible Galaxy 访问后,无需创建 git 子模块来实现此结果。假设 SCM 项目以及角色或集合是从私有作业环境中拉取并执行的,默认为创建特定于 /tmp 中的项目的 <private job directory >。但是,您可以根据 Settings 窗口的 Jobs Settings 选项卡中的环境指定另一个 作业执行路径

Configure execution path

缓存目录是全局项目文件夹中的一个子目录。内容可以从缓存位置复制到 < job private directory>/requirements_roles

默认情况下,自动化控制器有一个系统范围的设置,可让您从 SCM 项目的 roles/requirements.yml 文件中动态下载角色。您可以通过将 Enable Role Download toggle 按钮切换到 Off,在 Settings 菜单的 Jobs settings 屏幕中关闭此设置。

每当项目同步运行时,自动化控制器会决定项目源以及来自 Galaxy 或 Collections 的任何角色是否与项目不同步。项目更新将下载更新中的角色。

如果作业需要获取上游角色的更改,更新项目可确保发生这种情况。对角色的更改意味着新提交已推送到 provision-role 源控制。

要使此更改在作业中生效,您不必将新提交推送到 playbook 存储库。您必须更新项目,将角色下载到本地缓存中。

例如,假设您在源控制中有两个 git 存储库。第一个是 playbook,自动化控制器中的项目指向此 URL。第二个是 provision-role,它由 playbook git 存储库中的 roles/requirements.yml 文件引用。

每次作业运行前,作业都会下载最新的角色。由于性能的原因,角色和集合会在本地缓存。您必须在项目 SCM 更新选项中选择 Update Revision on Launch,以确保在每次作业运行前都会重新下载上游角色:

update-on-launch

与同步相比,更新会在进程早期发生,因此这会更快地识别错误和详情。

如需有关 requirements.yml 文件语法的更多信息和示例,请参阅 Ansible 文档中的 角色要求部分

如果有需要特别公开的目录,您可以在 Settings 屏幕的 Paths to Expose to Isolated Jobs 的 Jobs 部分中指定它们。您还可以更新设置文件中的以下条目:

AWX_ISOLATION_SHOW_PATHS = ['/list/of/', '/paths']
注意

如果您的 playbook 需要使用 AWX_ISOLATION_SHOW_PATHS 中定义的密钥或设置,您必须将 AWX_ISOLATION_SHOW_PATHS 添加到 /var/lib/awx/.ssh

如果您在设置文件中进行了更改,请确保在保存更改后使用 automation-controller-service restart 命令重启服务。

在 UI 中,您可以在 Jobs settings 窗口中配置这些设置。

Configure jobs

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.