第 11 章 项目
项目是在自动化控制器中表示的 Ansible playbook 的逻辑集合。您可以以不同的方式管理 playbook 和 playbook 目录:
- 将它们手动放置到自动化控制器服务器的 Project Base 路径下。
- 通过将 playbook 放置到自动化控制器支持的源代码管理(SCM)系统中。这包括 Git、Subversion、Mercurial 和 Red Hat Insights。
有关创建 Red Hat Insights 项目的更多信息,请参阅为 Red Hat Ansible Automation Platform 修复设置 Red Hat Insights。
项目基本路径为 /var/lib/awx/projects
。但是,这可以被系统管理员进行修改。它在 /etc/tower/conf.d/custom.py
中配置。
编辑此文件时要小心,因为不正确的设置可以禁用您的安装。
Projects 页面中显示当前可用的项目列表。
提供了一个 Demo Project,您可以先使用它。
默认视图为折叠状态(Compact),带有项目名称及其状态,但您可以使用每个条目旁边的 来展开以了解更多信息。
对于列出的每个项目,您可以使用每个项目旁边的图标获取最新的 SCM 修订 ,编辑 项目,或者复制 项目属性。
在相关作业运行时,可以更新项目。
如果您有大型项目(大约 10 GB),/tmp
上的磁盘空间可能会出现问题。
status 表示项目的状态,可以是以下之一(注意您也可以根据特定状态类型过滤您的视图):
Pending - 已创建源控制更新,但尚未排队或启动。任何作业(不仅仅是源控制更新)会一直处于待处理状态,直到系统准备好运行为止。可能的原因包括:
- 它有依赖项当前正在运行,因此必须等到它们完成为止。
- 在其配置的位置没有足够的运行容量。
- waiting - 源控制更新处于等待执行的队列中。
- Running - 源控制更新当前正在进行中。
- 成功 - 此项目的最后源控制更新成功。
- Failed - 此项目的最后源控制更新失败。
- Error - 最后的源控制更新作业根本无法运行。
- 已取消 - 项目的最新源控制更新已被取消。
- 永不更新 - 项目是为源控制配置的,但从未更新。
- OK - 项目没有配置为源控制,且正确就位。
-
缺少 项目基本路径的
/var/lib/awx/projects
中没有。这适用于手动或源控制受管项目。
凭证类型 Manual
的项目无法更新或调度基于源控制的操作,而无需重新配置为 SCM 类型凭证。
11.1. 添加新项目
您可以在自动化控制器中创建一个名为 projects 的 playbook 的逻辑集合。
流程
-
在导航面板中,选择
。 - 在 Projects 页面上,单击 以启动 Create Project 窗口。
在以下必填字段中输入相关信息:
- Name (必需)
- 可选: 描述
- Organization (必需):项目必须至少有一个机构。现在选择一个机构来创建项目。创建项目时,您可以添加额外的机构。
- 可选: 执行环境 :输入执行环境的名称,或从现有环境列表中搜索以运行此项目。如需更多信息,请参阅 创建和使用执行环境。
- 源控制类型 (必需):从菜单中选择与此项目关联的 SCM 类型。以下部分中的选项会根据所选的类型提供。如需更多信息,请参阅 手动管理 playbook 或使用 源控制管理 playbook。
- 可选: 内容签名验证凭证 :使用此字段启用内容验证。指定用于在项目同步期间验证内容签名的 GPG 密钥。如果内容已被篡改,则该作业将不会运行。如需更多信息,请参阅 项目签名和验证。
- 单击 。
其他资源
以下描述了项目源的方式:
11.1.1. 手动管理 playbook
流程
-
在 Project Base Path 下创建一个或多个目录来存储 playbook,例如
/var/lib/awx/projects/
。 - 创建 playbook 文件或将其复制到 playbook 目录中。
- 确保 playbook 目录和文件属于运行该服务的同一 UNIX 用户和组。
- 确保权限适合 playbook 目录和文件。
故障排除
如果您还没有将任何 Ansible Playbook 目录添加到基础项目路径中,则会显示错误消息。选择以下选项之一排除这个错误:
- 创建适当的 playbook 目录,并从您的(源代码管理)SCM 中签出 playbook。
- 将 playbook 复制到适当的 playbook 目录中。
11.1.2. 使用源控制管理 playbook
在使用源控制管理 playbook 时选择以下选项之一:
11.1.2.1. SCM 类型 - 配置 playbook 以使用 Git 和 Subversion
流程
-
在导航面板中,选择
。 - 点您要使用的项目名称。
- 在项目 Details 选项卡中,单击 。
- 从 Source control type 菜单中选择适当的选项(Git 或 Subversion)。
在以下字段中输入相关信息:
- 源控制 URL - 请参阅工具提示 中的示例。
-
可选: Source control branch/tag/commit :从源控制(Git 或 Subversion)输入 SCM 分支、标签、提交散列、任意 refs 或修订号(如果适用)。除非在下一字段中还提供了自定义 refspec,否则某些提交哈希和引用可能不可用。如果留空,则默认为
HEAD
,这是此项目最后一次签出的 Branch、Tag 或 Commit。 - 源控制 refspec - 此字段特定于 git 源控制的选项,只有熟悉和熟悉的高级用户才应指定要从远程存储库下载哪些引用。如需更多信息,请参阅 作业分支覆盖。
- 源控制凭证 - 如果需要身份验证,请选择适当的源控制凭证。
可选: Options - 选择启动行为(如果适用):
- 在 进行更新前清除任何本地修改。
- 删除 - 在进行更新前删除整个本地存储库。根据存储库的大小,这可能会显著增加完成更新所需的时间。
- 跟踪子模块 - 跟踪最新的提交。工具提示 中提供了更多信息。
- 更新启动时的修订版本,将项目的修订更新至远程源控制中的当前修订版本,并缓存 Ansible Galaxy 支持或 集合支持 中的 roles 目录。自动化控制器可确保本地修订版本匹配,并且角色和集合与最近更新保持同步。另外,为了避免在生成作业的速度超过项目可以同步的速度,为了避免作业溢出,请选择此选项可让您将缓存超时配置为缓存之前的项目同步。
- Allow branch override - 启用作业模板或使用此项目的清单源,从项目以外的指定 SCM 分支或修订开始。如需更多信息,请参阅 作业分支覆盖。
- 单击 。
11.1.2.2. SCM 类型 - 配置 playbook 以使用 Red Hat Insights
流程
-
在导航面板中,选择
。 - 点您要使用的项目名称。
- 在项目 Details 选项卡中,单击 。
- 从 Source Control Type 菜单中选择 Red Hat Insights。
- 在 Insights credential 字段中,选择用于 Insights 的适当凭证,因为 Red Hat Insights 需要凭证进行身份验证。
可选:在 Options 字段中,选择启动行为(如果适用):
- 在 进行更新前清除任何本地修改。
- 删除 - 在进行更新前删除整个本地存储库。根据存储库的大小,这可能会显著增加完成更新所需的时间。
- 在启动时更新 项目的修订 - 将项目的修订更新至远程源控制中的当前修订版本,并缓存 Ansible Galaxy 支持 或集合中的 roles 目录。???自动化控制器可确保本地修订版本匹配,并且角色和集合是最新的。如果生成作业的速度比项目可以同步的速度快,请选择此选项可让您将缓存超时配置为缓存以前的项目同步,以避免作业溢出。
- 单击 。
11.1.2.3. SCM 类型 - 配置 playbook 以使用远程归档
使用远程存档的 playbook 使项目基于生成版本工件或发行版本的构建过程,其中包含该项目在单个存档中的所有要求。
流程
-
在导航面板中,选择
。 - 点您要使用的项目名称。
- 在项目 Details 选项卡中,单击 。
- 从 Source control type 菜单中选择 Remote Archive。
在以下字段中输入相关信息:
- 源控制 URL - 需要一个远程归档的 URL,如 GitHub 发行版本或 存储在 Artifactory 中的构建工件,并将其解包到要使用的项目路径中。
- 源控制凭证 - 如果需要身份验证,请选择适当的源控制凭证。
可选:在 Options 字段中,选择启动行为(如果适用):
- 在 进行更新前清除任何本地修改。
- 删除 - 在进行更新前删除整个本地存储库。根据存储库的大小,这可能会显著增加完成更新所需的时间。
- 不建议 在启动时更新修订。此选项将项目的修订更新至远程源控制中的当前修订版本,并缓存 Ansible Galaxy 支持 或 集合 支持的 roles 目录。
不建议使用分支覆盖。此选项可让使用此项目的作业模板通过项目以外的指定 SCM 分支或修订启动。
注意由于此源控制类型旨在支持未更改工件的概念,因此建议禁用 Galaxy 集成(至少针对角色)。
- 单击 。