在此示例中,您将了解如何使用 SaltStack Config 应用状态文件以快速部署和管理配置设置。作为 IT 系统管理员或 DevOps 团队成员,您知道,在许多节点上,特别是大规模节点,逐个手动添加或更新配置设置非常耗时。更糟糕的是,必须同时管理数百或数千个节点时,还可能会出现配置错误或配置偏差。状态文件系统可帮助您解决此问题。在此示例中,您将了解如何在 SaltStack Config 中使用状态文件一致地添加和更新配置设置,例如,Windows Server 上的防火墙设置。

警告:

此动手示例将对您的环境进行更改,因此完成该示例时应小心谨慎。请考虑仅使用测试或开发环境中的节点尝试完成此示例,而不要在生产环境中尝试。

在Windows节点上配置防火墙设置

要通过针对端口 445 打开防火墙在 Windows 工作节点上配置防火墙设置,请执行以下操作:

  1. SaltStack Config 文件服务器中创建新文件。
    1. SaltStack Config 用户界面中,单击侧边菜单中的配置 > 文件服务器
    2. 首次打开“文件服务器”工作区时,您会看到文件目录和一个空白的新文件。使用此空白文件创建新文件。
  2. 在文件服务器中创建新的状态文件 (SLS)。
    1. 单击 Saltenv 菜单,然后选择 base
    2. 在未标记的菜单旁边,键入文件路径和文件名。使用 /windows/firewall.sls
    3. 在文件正文中,复制并粘贴以下状态文件代码(使用 YAML 语法):
      open_smb_port:
        win_firewall.add_rule:
          - name: SMB (445)
          - localport: 445
          - protocol: tcp
          - action: allow
      

      有关 Windows 防火墙模块的详细信息,请参见 Salt 模块 - Win 防火墙

    4. 保存状态文件。
    5. 确认新文件显示在文件服务器目录中的 base > windows > firewall.sls 下。
  3. 创建新作业。
    1. 单击侧边菜单中的配置 > 作业以打开“作业”工作区。
    2. 单击创建作业按钮。
      注:

      如果未显示“创建作业”按钮,说明您没有创建新作业的权限。请联系您的 vRealize Automation 管理员申请访问权限或请求为您创建此作业,以便您可以完成本教程。

  4. 输入新作业的详细信息并保存该作业。
    字段 示例值

    名称

    为此作业提供描述性名称,例如“配置 Windows 防火墙”。

    说明

    添加说明,告知其他用户此作业的用途,例如“在 Windows 节点上打开端口 445 的防火墙”。

    命令

    选择 salt

    salt 命令用于针对工作节点运行的作业。

    目标

    请勿从此菜单选择任何目标。将此字段留空可使您在运行作业时选择目标。

    函数

    单击此字段,然后开始键入 state.apply,直到可以选择此模块。

    在此字段中,可以选择运行此作业时应用的 Salt 模块。

    环境

    从菜单中选择 base

    状态

    从菜单中选择新创建的状态文件:windows.firewall

    参数

    此模块不接受参数,因此请将其留空。

  5. 作业已创建完成,现在通过选择作业目标以运行作业。
    1. 在侧边菜单中,单击工作节点以打开“工作节点”工作区并查看目标。
    2. 所有工作节点表中,找到要运行此作业的目标 Windows 工作节点。选中此工作节点旁边的框,然后单击运行作业按钮。
    3. 在“运行作业”对话框中,单击作业菜单,然后选择在前面步骤中创建的“配置 Windows 防火墙”作业。如果需要,可以键入作业的名称以筛选作业。
    4. 单击立即运行

      如果成功运行作业,则会显示一条通知,说明作业已成功启动。

  6. 单击侧边菜单中的活动 > 已完成,检查作业是否已完成。

    如果此表中未列出您的作业,则作业可能仍在进行中。可以通过单击活动 > 正在进行查找当前正在运行的作业。继续刷新活动 > 已完成,直到您的作业显示在表中。

  7. 作业完成后,查看作业结果。
    1. 找到显示作业的行,然后单击其 JID(作业标识号)。
      注:

      JID 显示为包含 20 位数的超链接数字。例如,一个可能的 JID 可能是:20210823204015061902

    2. 查看作业结果,确认针对端口 445 打开了防火墙。

结果和关键信息摘要

查看作业结果时,请考虑以下几点:

  • 状态文件提供了一种简单易行方法,可快速在一组目标节点上应用正确的配置设置(如防火墙设置)。状态文件可确保您的节点具有一致的配置设置,并且可以在任何规模下快速高效地部署这些设置。如果需要更改配置设置,只需更新状态文件并将其重新应用到目标中定义的所有工作节点。
  • 状态文件还可防止配置偏差,系统配置随着时间的推移或节点的不同而变得日渐迥异时会出现配置偏差。应用状态文件时,SaltStack Config 会检查目标是否处于所需的配置状态。状态类似于配置策略。它们定义了服务器应具有的目标状态。将该状态(策略)应用于系统时,SaltStack Config 仅执行使配置符合该状态(策略)所需的操作。如果已经合规,SaltStack Config 只告知您该配置已合规,而不会进行进一步更改。
  • 在此示例中,您将状态文件本地存储在 SaltStack Config 文件服务器中,但请注意,您可以将状态文件存储在版本控制的专用 Git 存储库中。许多用户将 SaltStack Config 链接到专用 Git 存储库,他们可以在其中使用基础架构即代码方法存储和密切监控状态文件的更改。