在“Pillar”工作区中,可以创建并管理本地存储在 SaltStack Config 中的 pillar 数据。Pillar 是在 Salt 主节点上定义的数据结构,并使用目标传递到一个或多个工作节点。它们仅允许将机密的目标数据安全地发送到相关工作节点。Pillar 可用于限制用户对专用数据的访问。例如,可以使用 pillar 允许用户运行需要对外部服务进行身份验证的作业,而无需访问这些身份验证凭据本身。在这种情况下,您可以向用户分配给定作业和目标的访问权限,而不是包含敏感身份验证详细信息的 pillar 的访问权限。
Pillar 数据在 SaltStack Config 数据库中加密,而不是明文存储。这些数据在传输过程中加密,并且仅对在 pillar 目标设置中指定的工作节点可见。有关将 pillar 分配给目标的详细信息,请参见分配 pillar。
目标是一个或多个 Salt 主节点中的一组工作节点,会对其应用作业的 Salt 命令。Salt 主节点也可以像工作节点一样进行管理,如果正在运行工作节点服务,也可以成为目标。工作节点是运行工作节点服务的节点,可以侦听 Salt 主节点发出的命令并执行请求的任务。有关详细信息,请参见工作节点。
Pillar 数据可以存储在以下任一位置:
- “Pillar”工作区中的专用 pillar
- 作业设置
- API (RaaS) 服务器中的其他 pillar 根目录
作业中存储的 pillar 数据不如存储在标准 pillar 中的数据安全,因为有权访问该作业的任何用户也可以查看 pillar 数据。作业用于运行远程执行任务、应用状态和启动 Salt 运行程序。有关详细信息,请参见作业。
有关 Salt 中 pillar 的详细信息,请参见 Salt pillar 讲解示范。
在“Pillar”工作区中,可以创建新的 pillar,并将 pillar 分配给目标。将 pillar 分配给目标时,还可以选择刷新该 pillar。
访问“Pillar”工作区
要使用“Pillar”工作区,请单击侧边菜单上的配置 > Pillar。
创建支柱
要创建新 pillar,请执行以下操作:
- 在“Pillar”工作区中,单击创建。
- 输入 JSON 格式的 pillar 数据,然后单击保存。
分配 pillar
要将 pillar 分配给特定的目标,请执行以下操作:
-
在“Pillar”工作区中,选择一个 pillar。
-
单击更新目标。
-
在对话框中,选择要应用 pillar 的目标。
除了选择目标外,还要选择刷新 pillar,以使该 pillar 立即可用于所选目标。
-
单击保存。
该 pillar 数据现在可用于所选目标中的所有工作节点。
Pillar 和所有工作节点目标
“所有工作节点”目标为只读,无法向其分配 pillar 数据。要向所有工作节点分配 pillar 数据,请创建一个与所有工作节点 (*
) 匹配的新目标。有关详细信息,请参见工作节点。
值优先级
如果在多个源中定义了相同的 pillar 数据,SaltStack Config 会按照以下优先级顺序选择要应用的数据:
- 直接在作业上传递的值
- SaltStack Config 用户界面中的值(在“Pillar”工作区中)
- 其他 pillar 根目录中的值
可以通过在 Salt 主节点配置中调整 pillar_roots
的顺序更改此行为。
Pillar 数据格式
外部 pillar 数据必须采用 JSON 格式。当前不支持 YAML。
Pillar 依赖项
文件
在将数据传递到状态、反应器和其他类型的文件时,pillar 数据非常有用。请确保在创建或更新 pillar 数据时也更新任何相应文件中的 pillar 引用。请参见文件服务器。
目标
当关联的作业在目标上运行时,会使用附加到目标的 pillar 数据。请确保在更新 pillar 数据时也刷新其关联目标上的 pillar。请参见分配 pillar。