定义作业或操作的目标有助于防止操作在不应运行此操作的节点上运行。可以使用 Grain、Glob、List 或 Compound 组织目标。

什么是目标?

目标是一个或多个 Salt 主节点中的一组工作节点,会对其应用作业的 Salt 命令。目标可以包含连接到环境中任何 Salt 主节点的工作节点。Salt 主节点也可以像工作节点一样进行管理,如果正在运行工作节点服务,也可以成为目标。

开始前

创建目标之前,必须考虑要创建的目标组。例如,您可能希望为安全区域或单个子网创建目标组。如何组织目标组将取决于您组织的需求。

创建新目标

Automation Config 中的每个目标都需要名称、Salt 主节点和目标条件。要定义包括一个或多个工作节点的新目标,请执行以下操作:

  1. 目标工作区中,单击创建按钮。
  2. 填写表单。

    在 SaltStack Config 中创建目标页面

    1. 名称字段中,输入新目标的描述性名称。
    2. (可选)提供新目标的描述。
    3. 默认情况下,所有主节点设置处于启用状态,这意味着由任何 Salt 主节点管理的工作节点都可以包含在目标中。单击此按钮会仅将此目标应用于与一个或多个 Salt 主节点关联的工作节点子集。

      如果禁用该设置,将显示一个菜单,可使用该菜单选择要应用目标的一个或多个 Salt 主节点。有关详细信息,请参见目标设置

    4. 单击 Grain 菜单,然后选择要使用的目标类型。

      可以使用 Grain、Glob、List 或 Compound 确定工作节点目标。有关这些目标选项的详细信息,请参见目标设置。有关 Salt 目标的更多常规背景信息,请参见确定工作节点目标

  3. 完成后,单击保存

    新目标将显示在目标工作区中。

根据在上一步中选择的目标类型,提供不同的目标设置和条件。有关这些设置的详细信息,请参见 目标设置
注: 如果选择 Compound 作为第一个条件,则必须遵循 Salt 目标参考中包含的目标语法,并且必须在复合目标定义中包含任何第二个条件。 Automation Config 不允许在目标编辑器中添加任何其他条件。有关组合目标的详细信息,请参见 目标设置

向目标分配 pillar

向目标分配 Pillar:

  1. 目标工作区中,单击要为其分配 Pillar 数据的目标旁边的菜单菜单图标
  2. 单击附加 Pillar
  3. 附加 Pillar 对话框中,选择要应用于目标的 Pillar。

    附加 Pillar 对话框

    除了选择 pillar 外,还要选择刷新 pillar,以使该 pillar 立即可用于所选目标。

  4. 单击更新目标
所选 pillar 数据现在可用于目标中的所有工作节点。
注: 您也可以在 Pillar工作区中向目标分配 Pillar。有关详细信息,请参见 如何创建状态文件和 pillar 数据

将角色分配给目标

要为目标分配角色,请执行以下操作:

  1. 目标工作区中,单击要为其分配角色的目标旁边的菜单菜单图标
  2. 单击分配角色
  3. 分配角色对话框中,选择要分配的角色。

    在 SSC 中分配角色

    有关 Automation Config 中用户角色的详细信息,请参见“如何定义用户角色”。

  4. 单击更新目标

具有资源权限的角色将添加到目标组。您可以在目标数据网格中查看新的或更新的角色。

目标设置

Automation Config 中的目标类似于 Open Salt 中的目标,但 Automation Config 提供了用于定义目标的简化界面,同时还支持保存目标定义以便重用。有关 Salt 中的目标的详细信息,请参见 Salt 目标参考

Automation Config 中的每个目标都包括名称、Salt 主节点和目标条件,如下表所示。

设置 说明
名称

输入目标名称。目标名称不必唯一。这可能会导致在 Automation Config 用户界面中不同的项目显示相同的名称。

所有 Salt 主节点

默认情况下,目标包括所有 Salt 主节点。但是,可以选择将仅属于特定 Salt 主节点的工作节点设置为目标。

例如,如果您的环境具有多个负责运行特定应用程序的节点,并且已对 Salt 基础架构进行分区以便这些计算机都连接到单个 Salt 主节点,则通过仅选择该 Salt 主节点可以创建包含整个工作节点子集的目标。

要通过 Salt 主节点启用目标,请单击单选按钮以停用此设置。将显示一组新的设置。

主节点字段下,选择要将其工作节点设置为目标的 Salt 主节点。所有其他目标条件仅适用于与所选 Salt 主节点关联的工作节点子集。

目标条件

目标是动态的,新的工作节点会自动添加到任何匹配的目标定义。如果您不希望将来包含会与动态目标匹配的新工作节点,请将目标保存为列表。

可以使用目标条件指定一组工作节点,请参阅以下字段描述。

目标类型 说明
Grain(属性匹配)

匹配特定的 Grain 值,例如,osfullnameDebian。选择 Grain 后,会预填充值列表,以便您可以单击字段以查看可用选项或开始键入。

Glob(通配符匹配)

使用工作节点 ID 的通配符匹配。例如,可以通过输入 webserver* 选择名为 webserver01webserver02webserver03 的多个工作节点。

List(列表匹配)

指定要包括在目标中的工作节点列表。例如,dc3-north-db1,dc3-north-db2

如果不希望动态授予对目标的访问权限,则指定列表非常有用。这样可以防止自动将与动态目标条件匹配的新工作节点添加到目标。

Compound(组合匹配)

组合多个目标接口(以连接词 and、or 和 not 分隔)。

如果选择“Compound”作为第一个条件,则必须遵循 Salt 目标参考中包含的目标语法,并且必须在复合目标定义中包含任何第二个条件。Automation Config 不允许在目标编辑器中添加任何其他条件。

后续步骤

创建所需的目标后,可以创建作业,以便针对目标工作节点运行任务和进程。有关详细信息,请参见如何创建作业