作业用于运行远程执行任务、应用状态和启动 Salt 运行程序。在“作业”工作区中,可以创建、配置和保存作业设置以便重用。作业通常用于需要自动执行多次的系统操作,从而节省了配置时间。
例如,您可能有一个创建和部署虚拟机并安装一组基本应用程序的作业。每次需要部署新虚拟机时,都可以运行该作业,以确保将一组相同的应用程序和配置应用于每个部署。
有关如何结合使用“作业”工作区和 SaltStack Config 中的其他工作区创建并使用作业进行配置管理的概述,请参见 SaltStack Config 作业工作流。
可以从“作业”工作区、“工作节点”工作区或 SaltStack Config 用户界面中的其他屏幕运行作业,具体取决于作业的特性。此外,也可以定期运行作业,或只在需要时才运行作业。通常,仅在需要时运行的作业称为临时作业。
有关运行作业的详细信息,请参见:
作业要求
“作业”工作区中的每个作业都已预定义设置。您可以编辑现有作业的设置,也可以创建具有独特设置的新作业。
要使作业运行,作业必须包括:
- 函数(作业要完成的任务)
- 一个目标、一个 Salt 主节点或多个 Salt 主节点
- 基于角色的权限
可以在作业设置中定义目标,也可以不定义目标以在便每次运行作业时选择目标。定义作业目标还可以防止该作业在不应运行此作业的节点上运行。有关详细信息,请参见工作节点。
在“作业”工作区中,可以定义对每个作业的基于角色的访问权限。除了在作业上定义角色访问权限外,还必须分配角色权限以在“角色”编辑器中执行相应的任务。有关详细信息,请参见角色和权限。
可以在“作业”工作区中创建新作业和编辑现有作业。定义作业设置后,可以运行临时作业,也可以创建调度以在将来运行作业。有关详细信息,请参见调度。
SaltStack Config 包括“运行命令”控制,可用于在不定义可重用作业的情况下运行单个命令。此功能对于快速执行命令或运行不属于日常工作流中的一次性作业非常有用,例如故障排除时或初始配置期间。有关详细信息,请参见运行命令。
此外,还可以定义哪些角色能够查看、编辑、运行和删除不同的作业。
访问“作业”工作区
要使用“作业”工作区,请单击侧边菜单上的配置 > 作业。
创建作业
要创建新作业,请执行以下操作:
- 在“作业”工作区中,单击创建作业。
- 输入新作业的详细信息。需要输入的详细信息取决于要创建的作业类型。有关详细信息,请参见作业设置。
- 单击保存。作业现在可运行。
运行作业
要运行临时作业,请执行以下操作:
- 在“作业”工作区中,单击要运行的作业旁边的菜单 。
- 单击立即运行。
- 在弹出窗口中,选择要对其运行作业的目标。
注: 如果作业配置为包含目标或 Salt 主节点,则会显示此信息以进行确认。
- 根据需要选择其他选项。
- 设置通知首选项
- 选择“作为测试运行”(试运行),以根据需要作为测试运行作业。
- 单击立即运行。
注: 也可以从“工作节点”工作区运行作业。请参见 工作节点。
搜索作业
要查看到目前为止已创建的可用作业列表,请访问“作业”工作区。
默认情况下,一个页面上一次只显示 20 个作业。要查看更多作业,请单击作业表底部的每页项数菜单,然后选择要查看的所需作业数量。
要查找特定作业,请执行以下操作:
- 在“作业”工作区中,单击要搜索的列所对应的筛选器按钮 。
- 开始键入搜索条件以立即查看筛选出的行。例如,可以通过筛选函数列,按作业中涉及的 Salt 模块搜索作业。
注: 也可以单击任意列名称一次,按降序对行进行排序。再次单击将以相反顺序进行排序。有关筛选的详细信息,请参见 筛选和排序表列。
筛选和排序表列
可以通过选择每列的筛选器图标 并选择或键入筛选条件来筛选相应列。要清除筛选器,请单击作业表上方的清除筛选器按钮。
也可以通过选择列名称对列进行排序。要自定义在表中显示哪些列,请单击表左下角的显示列按钮 。
查看作业返回数据
要查看作业返回数据,请执行以下操作:
- 在侧边菜单中,单击活动,然后单击已完成以查看已完成作业的列表。
- 在 JID 列中选择一个作业 ID 以查看作业返回详细信息。有关详细信息,请参见作业返回数据。
编辑作业
要更新或更改作业,请执行以下操作:
- 在“作业”工作区中,选择一个作业。
- 根据需要编辑作业详细信息,并在完成后单击保存。
定义作业权限
作为管理员,您可以限制哪些用户可以运行特定的作业。要定义这些权限,请执行以下操作:
- 在“作业”工作区中,选择一个作业以打开该作业的详细信息。
- 在作业详细信息页面中,单击角色访问权限。
- 在对话框中,选择要为不同角色启用的访问权限级别,然后单击保存。
- 在作业详细信息页面中,单击保存。
注: 除了在作业上定义角色访问权限外,还必须分配角色权限以在“角色”编辑器中执行相应的任务。有关详细信息,请参见 角色和权限。
作业设置
基于以下选项定义作业设置。
- 名称 - 输入作业的名称。此名称将显示在“作业”、“权限”和“活动”工作区以及“角色”编辑器中。
- 描述 - 输入作业的描述(可选)。此描述将显示在“作业”工作区的作业列表中。
- 命令 - 指定要运行的命令,从以下选项中进行选择:
-
salt
- 定义要对目标工作节点组运行的作业。 -
salt-run
- 定义要对一个 Salt 主节点或一组 Salt 主节点运行的作业。
注: SaltStack Config 包括“运行命令”控制,可用于在不定义可重用作业的情况下运行单个命令。此功能对于快速执行命令或运行不属于日常工作流中的一次性作业非常有用,例如故障排除时或初始配置期间。有关详细信息,请参见 运行命令。 -
- 目标 - 目标是一个或多个 Salt 主节点中的一组工作节点,会对其应用作业的 Salt 命令。Salt 主节点也可以像工作节点一样进行管理,如果正在运行工作节点服务,也可以成为目标。在命令中选择
salt
时,可以选择指定要对其运行作业的目标工作节点组。如果该字段留空,则每次运行作业时都会提示选择目标。 - 所有主节点 - Salt 主节点是一个中央节点,用于向工作节点发出命令。在命令中选择
salt-run
时,可以指定应对其运行作业的 Salt 主节点。默认情况下,所有主节点处于选中状态。如果关闭此选项,将显示主节点菜单。salt-run
作业也称为 Salt 运行程序。Salt 运行程序是用于在 Salt 主节点上执行便捷函数的模块。有关使用salt-run
的详细信息,请参见作业设置。 - Salt 主节点 - 在命令中选择
salt-run
并关闭所有主节点时,将显示主节点菜单。单击此菜单,然后选择要对其运行作业的特定 Salt 主节点。如果需要,可以选择多个 Salt 主节点。 - 函数 - 输入函数以定义作业运行时发生的情况。可以定义单个远程执行作业、状态文件作业或 Salt 运行程序作业。有关 Salt 函数的列表,请参见 Salt 模块参考。
- 单个远程执行作业 - 要定义单个远程执行作业,请在作业设置中包含函数和任何必要的参数。
- 状态文件作业 - 状态文件作业会将状态应用于目标,并且可基于至少一个命令。状态函数是一种包含在状态模块中的函数,可以管理特定状态对系统的应用。状态函数会频繁调用一个或多个执行模块以执行给定任务。highstate 将应用 top 文件中定义的所有状态。您可以在文件服务器中查看和添加状态文件。请参见文件服务器。
要对作业应用状态文件,请使用
state.apply
函数。要执行 highstate,请在作业设置中使用state.apply
或state.highstate
函数。将状态调用添加到作业时,将显示其他字段,可以在其中选择要应用的状态文件。也可以采用 JSON 格式传递可选的 pillar 替代。
注: 作业页面上提供的 Pillar 数据会随作业一起发送,其他经身份验证的工作节点可能会看到这些数据。为加强数据保护,请改为使用标准 Pillar 分配敏感数据。请参见 Pillar。有关 Salt 状态的详细信息,请参见 Salt 文档:如何使用 Salt 状态?。
- Salt 运行程序 -
salt-run
作业应用于一个 Salt 主节点或一组 Salt 主节点。salt-run
作业也称为 Salt 运行程序。Salt 运行程序是用于在 Salt 主节点上执行便捷函数的模块。可以使用 Salt 运行程序运行编排、远程打开工作节点、调用 Webhook 等。它们对于集中执行任务或从一个集中起点执行任务非常有用。例如,可以对与给定 Salt 主节点关联的所有工作节点应用 highstate。要配置编排运行程序作业,请使用
state.orchestrate
函数。将编排调用添加到作业时,将显示其他字段,可以在其中选择要应用的编排文件。也可以采用 JSON 格式传递可选的 pillar 替代。注: 作业页面上提供的 Pillar 数据会随作业一起发送,其他经身份验证的工作节点可能会看到这些数据。为加强数据保护,请改为使用标准 Pillar 分配敏感数据。请参见 Pillar。有关 Salt 运行程序的详细信息,请参见 Salt 运行程序参考。
- 环境 - 选择状态文件或编排文件所在的环境。这是文件服务器中根目录的子目录。请参见文件服务器。
- 测试 (试运行) - 运行测试作业并生成模拟作业返回。如果选择测试,作业将不会运行,也不会进行任何更改。如果取消选择此选项,可以稍后在运行作业时选择将作业作为测试运行。“测试 (试运行)”仅适用于某些函数。有关详细信息,请联系您的管理员。