在此示例中,您将看到如何使用 SaltStack Config 应用状态文件以快速部署和管理配置设置的另一个示例。此示例显示了一个稍微复杂的状态文件,用于处理三个不同的任务(安装服务、启动服务以及将文件部署到运行该服务的节点)。

警告:

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

在 CentOS (Linux) 节点上配置 Apache Web 服务器

要编写用于配置和部署 Apache Web 服务器的状态文件,请执行以下操作:

  1. SaltStack Config 文件服务器中创建新文件。
    1. SaltStack Config 用户界面中,单击侧边菜单中的配置 > 文件服务器
    2. 首次打开“文件服务器”工作区时,您会看到文件目录和一个空白的新文件。使用此空白文件创建新文件。
  2. 使用此空白的新文件创建新的状态文件 (SLS)。
    1. 单击 Saltenv 菜单,然后选择 base
    2. 在未标记的菜单旁边,键入文件路径和文件名。使用 /apache/centos.sls
    3. 在文件正文中,复制并粘贴以下状态文件代码(使用 YAML 语法):
      install_apache:
        pkg.installed:
          - name: httpd
          
      ensure_service_running:
        service.running:
          - name: httpd
          - watch:
            - pkg: install_apache
            
      default_html_page:
        file.managed:
          - name: /var/www/html/index.html
          - source: salt://apache/index.html
      
      注:
      此状态文件包含三个步骤,分别运行三个不同的 Salt 执行模块。将此状态文件应用于工作节点时, SaltStack Config 会:
      • 在工作节点上安装 Apache (httpd)。
      • 启动 Apache 服务。
      • 部署在工作节点上托管的示例 HTML 索引页面。
    4. 保存状态文件。
    5. 确认新文件显示在文件服务器目录中的 base > apache > centos.sls 下。
  3. 将示例 HTML 索引页面添加到文件服务器。
    1. 在“文件服务器”工作区中,单击创建按钮以添加新文件。
    2. 单击未标记的菜单,然后选择 base
    3. 在此未标记的菜单旁边,键入此文件的文件路径和文件名。使用 /apache/index.html
    4. 在文件正文中,复制并粘贴以下 HTML 代码:
      <html>
      <head><title>SaltStack Config Example></title></head>
      <body>
      <h1>SaltStack Config Example</h1>
      
      Hello, world!
      
      </body>
      
    5. 保存 HTML 文件。
    6. 确认新文件显示在文件服务器目录中的 base > apache > index.html 下。
  4. 创建新作业。
    1. 单击侧边菜单中的配置 > 作业以打开“作业”工作区。
    2. 单击创建作业按钮。
      注:

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

  5. 在“新建作业”屏幕上,填写新作业的详细信息并保存该作业。
    字段 示例值

    名称

    为此作业提供描述性名称,例如“配置 Apache Web 服务器”。

    说明

    添加说明,告知其他用户此作业的用途,例如“在目标 CentOS 节点上配置和部署 Apache Web 服务器以及示例 HTML 索引页面”。

    命令

    选择 salt

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

    目标

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

    函数

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

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

    环境

    从菜单中选择 base

    状态

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

    参数

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

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

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

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

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

  8. 完成作业后,检查索引页面是否托管在新配置的 Web 服务器上。
    1. 在 Web 浏览器中,转到作业中目标 CentOS 工作节点的 IP 地址。要在 SaltStack Config 中查找工作节点的 IP 地址,请在“工作节点”工作区中查看 IP 地址列。
    2. 输入该 IP 地址时,您应该会看到示例 HTML 索引页面。

结果和关键信息摘要

查看作业结果和索引页面时,请考虑以下几点:

  • 状态文件方法可在任何规模下快速设置和更新系统配置,也可以在基础架构即代码方法中防止配置偏差。
  • SaltStack Config 支持构建可以包含复杂元素(如变量)的状态文件,这些元素的值会根据条件或在将状态文件应用于系统时传递到状态文件的信息而变化。
  • 您还可以构建可从专用库(在 SaltStack Config 中称为 pillar)提取密码的状态文件,以帮助确保凭据安全,同时授权团队成员可以在有权访问的资源上运行作业。