第 20 章 作业模板


作业模板是用于运行 Ansible 作业的定义和一组参数。作业模板可用于多次运行同一作业。它们还鼓励重复使用 Ansible playbook 内容以及团队间的协作。

Templates 列表视图显示当前可用的作业模板。默认视图为折叠状态(Compact),显示模板名称、模板类型和使用该模板运行的最后一个作业的时间戳。您可以点每个条目旁边的箭头 Arrow 图标展开并查看更多信息。此列表按名称按字母顺序排序,但您可以根据其他条件排序,或者根据模板的不同字段和属性进行搜索。

在此屏幕中,您可以启动 Rightrocket ,编辑 Leftpencil ,并复制 Copy 工作流作业模板。

注意

作业模板可用于构建工作流模板。显示 工作流可视化工具 Visualizer 图标的模板是工作流模板。点图标允许您以图形方式构建工作流。作业模板中的多个参数允许您选择 Prompt on Launch,您可以在工作流级别更改,而不影响作业模板级别分配的值。具体步骤请查看 工作流可视化工具 部分。

20.1. 创建作业模板

流程

  1. Templates 列表视图中,从 Add 列表中选择 Add Job template
  2. 在以下字段中输入相关信息:

    注意

    如果某个字段选择了 Prompt on launch 复选框,则启动作业时会提示您输入该字段的值。大多数提示的值将覆盖作业模板中设置的任何值。下表中会记录例外情况。

    Expand
    字段选项启动时提示

    Name

    输入作业的名称。

    N/A

    描述

    根据需要输入任意描述(可选)。

    N/A

    任务类型

    选择作业类型:

    • 运行:启动时启动 playbook,在选定的主机上运行 Ansible 任务。
    • check:执行 playbook 的"dry run"并报告将要进行的更改,而无需实际进行更改。不支持检查模式的任务将丢失,且不会报告潜在的更改。

    如需有关作业类型的更多信息,请参阅 Ansible 文档中的 Playbook 部分。

    清单(Inventory)

    从可供登录的用户可用的清单中选择要用于此作业模板的清单。

    系统管理员必须授予您或团队权限,才能在作业模板中使用某些清单。

    是。

    清单提示会在后续提示窗口中以自己的步骤的形式显示。

    项目

    从可供登录的用户可用的项目中选择要用于此作业模板的项目。

    N/A

    SCM 分支

    只有在您选择了允许分支覆盖的项目时,才会显示此字段。指定要在任务运行中使用的覆盖分支。如果留空,则使用项目中的指定 SCM 分支(或提交散列或标签)。

    如需更多信息,请参阅 作业分支覆盖

    执行环境

    选择要运行此任务的容器镜像。您必须选择一个项目,然后才能选择执行环境。

    是。

    执行环境提示会在后续提示窗口中以自己的步骤的形式显示。

    Playbook

    从可用的 playbook 中选择要使用此作业模板启动的 playbook。此字段自动填充所选项目的项目基本路径中找到的 playbook 名称。另外,如果未列出 playbook,则可以输入 playbook 的名称,如您要使用该 playbook 运行的文件的名称(如 foo.yml)。如果您输入无效的文件名,模板会显示一个错误,或者导致作业失败。

    N/A

    凭证

    选择 examine 图标打开一个单独的窗口。

    从用于此作业模板的可用选项中选择凭据。

    如果列表太长,请使用下拉菜单列表根据凭证类型过滤。某些凭证类型不会被列出,因为它们不适用于某些作业模板。

    • 如果选择,在启动具有默认凭证的作业模板时,如果相同类型,则提供另一个凭证会替换默认凭证。以下是这个消息的示例:

    作业模板默认凭据必须替换为同一类型之一。请为以下类型选择一个凭证,以便继续: Machine。

    • 或者,您可以在看到适合的情况下添加更多凭证。
    • 凭证提示会在后续提示窗口中以自己的步骤的形式显示。

    标签

    • (可选)提供描述此作业模板的标签,如 devtest
    • 使用标签对显示中的作业模板和完成的作业进行分组和过滤。
    • 标签在添加到作业模板时创建。标签使用作业模板中提供的项目与单个机构关联。如果机构的成员具有编辑权限(如 admin 角色),则机构的成员可以在作业模板上创建标签。
    • 保存作业模板后,标签会显示在 Expanded 视图中的 作业模板 概述中。
    • 选择标签旁边的 Disassociate 将其删除。删除标签后,它不再与该特定作业或作业模板关联,但它与引用它的任何其他作业关联。
    • 在启动时,作业会继承作业模板中的标签。如果您从作业模板中删除标签,它也会从作业中删除。
    • 如果选择,即使提供了默认值,也会在启动时提示您提供附加标签(如果需要)。
    • 您无法删除现有标签,选择 Disassociate 只删除新添加的标签,而不是现有的默认标签。

    变量

    • 向 playbook 传递额外的命令行变量。这是 ansible-playbook 的"-e"或"-extra-vars"命令行参数,记录在 Ansible 文档中 在运行时定义变量的 Ansible 文档中
    • 使用 YAML 或 JSON 提供键或值对。这些变量具有最大优先级值,并覆盖其他位置指定的其他变量。以下是一个值: git_branch: production release_version: 1.5

    是。

    如果要能够在调度中指定 extra_vars,您必须在作业模板中为 Variables 选择 Prompt on launch,或者在作业模板上启用问卷调查。那些回答的问卷调查问题将变为 extra_vars

    Forks

    执行 playbook 时使用的并行或同步进程数量。值为零使用 Ansible 默认设置,即五个并行进程,除非在 /etc/ansible/ansible.cfg 中被覆盖。

    限制

    用于进一步限制受 playbook 管理或影响的主机列表的主机模式。您可以通过冒号(:)分隔多个模式。与核心 Ansible 一样:

    • a:b 表示"在组 a 或 b 中"
    • a:b:&c 表示"在 a 或 b 中,但必须在 c 中"。
    • 答:!b 表示"在 a 中,一定不要在 b 中"

    如需更多信息,请参阅 Ansible 文档中的 Patterns:以主机和组为目标

    如果未选中,则作业模板针对清单中的所有节点,或者仅在 Limit 字段中预定义节点执行。作为工作流的一部分运行时,会使用工作流作业模板限制。

    详细程度

    控制 Ansible 在 playbook 执行时生成的输出级别。从 Normal 到各种 Verbose 或 Debug 设置中选择详细程度。这只会出现在 详情 报告视图中。详细日志记录包括所有命令的输出。调试日志记录非常详细,包括对某些支持实例有用的 SSH 操作信息。

    详细程度 5 会导致自动化控制器在作业运行时大量阻断,这可能会延迟报告作业已完成(即使它已经完成),并可能导致浏览器标签页锁定。

    任务分片

    指定您希望此作业模板运行的分片数量。每个片段针对清单的一部分运行相同的任务。有关作业分片的更多信息,请参阅 作业分片

    Timeout(超时)

    这可让您指定在作业被取消前可以运行的时间长度(以秒为单位)。在设置超时值时请考虑以下几点:

    • 在设置中定义了一个全局超时,默认为 0,表示没有超时。
    • 作业模板上的一个负超时(<0)是作业中的 true "no timeout"。
    • 作业模板上的超时为 0,将作业默认为全局超时(默认为没有超时)。
    • 一个正超时会设置该作业模板的超时时间。

    显示更改

    允许您查看 Ansible 任务所做的更改。

    实例组

    选择 Instance 和 Container Groups 来与此作业模板关联。如果列表太长,使用 examine 图标缩小选项范围。作业模板实例组贡献作业调度条件,请参阅 作业运行时 行为 和控制针对规则运行的作业。系统管理员必须授予您或团队权限,才能在作业模板中使用实例组。使用容器组需要 admin 权限。

    • 是。

    如果选择,您将按首选顺序提供作业首选实例组。如果第一个组没有容量,则会考虑列表中的后续组,直到有容量可用为止,该组被选择来运行作业。

    • 如果您提示输入实例组,则输入的内容会替换正常的实例组层次结构,并覆盖所有机构和清单实例组。
    • 实例组提示在后续提示窗口中以自己的步骤的形式显示。

    作业标签

    键入 并选择 Create 菜单,以指定应执行 playbook 的哪些部分。有关更多信息和示例,请参阅 Ansible 文档中的 标签

    跳过标签

    键入 并选择 Create 菜单,以指定要跳过的 playbook 的某些任务或部分。有关更多信息和示例,请参阅 Ansible 文档中的 标签

  3. 如果需要,指定启动此模板的以下选项:

    • Privilege Escalation :如果选中,您可以使此 playbook 以管理员身份运行。这等同于将-- become 选项传递给 ansible-playbook 命令。
    • provisioning Callbacks :如果选中,您可以启用主机通过 REST API 调用自动化控制器,并从此作业模板启动作业。如需更多信息,请参阅 置备回调
    • 启用 Webhook :如果选中,您可以打开与用于启动作业模板的预定义 SCM 系统 Web 服务进行接口的功能。GitHub 和 GitLab 是支持的 SCM 系统。

      • 如果您启用 Webhook,会显示其他字段,提示输入更多信息:

      • Webhook Service :选择要从哪个服务侦听 Webhook。
      • Webhook URL :自动填充将 POST 请求发送到的 Webhook 服务的 URL。
      • Webhook Key: 生成共享 secret,供 Webhook 服务用来签署发送到自动化控制器的有效负载。您必须在 Webhook 服务上的设置中对此进行配置,以便自动化控制器接受来自该服务的 Webhook。
      • Webhook 凭证 :(可选)提供 GitHub 或 GitLab 个人访问令牌(PAT)作为凭证,用来向 webhook 服务发回状态更新。在选择它前,凭证必须存在。请参阅 凭证类型 来创建。
      • 有关设置 Webhook 的更多信息,请参阅使用 Webhook
    • 并发作业 :如果选中,则允许队列中的作业如果不依赖于另一个作业,则同时运行。如果要同时运行作业分片,请选中此框。如需更多信息,请参阅自动控制器容量确定和作业影响
    • 启用事实存储 :如果选中,自动化控制器将收集到与作业运行相关的清单中所有主机的事实。
    • 防止实例组 Fallback: 检查此选项,仅允许 Instance Groups 字段中列出的实例组来运行作业。如果清除,则执行池中的所有可用实例都会根据控制 作业运行中所述的层次结构使用
  4. 当您完成作业模板详情配置后,点 Save

保存模板不会退出作业模板页面,而是提前进入 作业模板详情选项卡。保存模板后,您可以点 Launch 来启动作业,或者点 Edit 添加或更改模板的属性,如权限、通知、查看完成的作业,并添加问卷调查(如果作业类型不是扫描)。在启动前,您必须首先保存模板,否则 Launch 仍被禁用。

验证

  1. 在导航面板中,选择 Resources Templates
  2. 验证新创建的模板是否出现在 Templates 列表视图中。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat