第 6 章 作业模板


您可以从 Automation Execution Templates 创建作业模板和工作流作业模板。

有关工作流作业模板,请参阅 工作流作业模板

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

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

在这个屏幕中,您可以启动 Rightrocket ,编辑 Leftpencil ,复制 Copy 并删除 Delete 作业模板。

工作流模板具有工作流可视化工具 Workflow visualizer 图标,作为访问工作流编辑器的快捷方式。

注意

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

6.1. 创建作业模板

流程

  1. 在导航面板中,选择 Automation Execution Templates
  2. Templates 页面上,从 Create template 列表中选择 Create job template
  3. 在以下字段中输入相关信息:

    注意

    如果某个字段选择了 Prompt on launch 复选框,则启动作业时会提示您输入该字段的值。

    大多数提示的值将覆盖作业模板中设置的任何值。

    下表中会记录例外情况。

    字段选项启动时提示

    Name

    输入作业的名称。

    N/A

    描述

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

    N/A

    作业类型

    选择作业类型:

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

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

    清单(Inventory)

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

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

    是。

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

    项目

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

    N/A

    源控制分支

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

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

    执行环境

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

    是。

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

    Playbook

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

    N/A

    凭证

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

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

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

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

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

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

    标签

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

    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 文档中的 标签

    额外变量

    • 向 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

  4. 如果需要,您可以设置启动此模板的以下选项:

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

      • 如果您启用 Webhook,会显示其他字段,提示输入更多信息:
      • Webhook 服务 :选择要从哪个服务侦听 Webhook。
      • Webhook URL :自动填充将 POST 请求发送到的 Webhook 服务的 URL。
      • Webhook 密钥 :生成共享 secret,供 Webhook 服务用来签署发送到自动化控制器的有效负载。您必须在 Webhook 服务上的设置中对此进行配置,以便自动化控制器接受来自该服务的 Webhook。
      • Webhook 凭证 :(可选)提供 GitHub 或 GitLab 个人访问令牌(PAT)作为凭证,用来向 webhook 服务发回状态更新。

        在选择它前,凭证必须存在。

        请参阅 凭证类型 来创建。

      • 有关设置 Webhook 的更多信息,请参阅使用 Webhook
    • 并发作业 :如果选中,则允许队列中的作业如果不依赖于另一个作业,则同时运行。如果要同时运行作业分片,请选中此框。如需更多信息,请参阅 自动化控制器容量确定和作业影响
    • 启用事实存储 :如果选中,自动化控制器会为与作业运行相关的清单中所有主机存储收集的事实。
    • 防止实例组回退 :检查此选项仅允许 Instance Groups 字段中列出的实例组运行作业。如果清除,则执行池中的所有可用实例将根据控制作业运行位置 中描述的层次结构 使用
  5. 当您完成作业模板详情配置后,点 Create job template

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

验证

  1. 在导航面板中,选择 Automation Execution Templates
  2. 验证新创建的模板是否出现在 Templates 页面中。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.