作为云模板开发人员,您可以将属性添加到 YAML,以便在部署模板时安装 SaltStack Config 工作节点。

添加到模板的核心属性包括要部署的计算机的远程访问以及 SaltStack Config 资源的配置属性。该过程仅包括选定的属性。YAML 包括此示例中未使用的其他 SaltStack Config 资源属性。有关详细信息,请查看结构定义。

尽管此示例显示了如何为远程访问属性添加用户名和密码,但您可以配置密钥属性并将其添加到模板。有关示例,请参见密钥 Cloud Assembly 属性

过程

  1. Cloud Assembly 中,选择设计 > 云模板
  2. 打开现有模板。
  3. 找到 SaltStack Config 资源,并将其拖动到画布上。
  4. 将 SaltStack Config 资源附加到将安装工作节点的计算机。
  5. 在代码窗格中,将属性添加到 SaltStack Config 资源。

    您无需包括所有可能的属性。此示例中使用的值在表中进行了说明。

    Cloud_SaltStack_1:
        type: Cloud.SaltStack
        properties:
          masterId: saltstack_enterprise_installer
          hosts:
            - ${resource["Cloud_VM_1".id}
          saltEnvironment: sse
          stateFiles:
            - /doe.sls
          variables: 
            user: joe
          additionalMinionParams:
            grains:
              roles:
                - webserver
                - database   
           additionalAuthParams:
             profile:
                tmp_dir: /var/run

    下面提供了此示例中所用 Cloud_SaltStack_1 属性的描述。

    属性 说明
    masterId 在示例结构定义中,masterId 值为 saltstack_enterprise_installer

    您可能在 SaltStack Config管理 > 主节点密钥中定义了主节点 ID

    hosts hosts 值是要安装工作节点的计算机或计算机集群的 ID。默认情况下,计算机的名称作为 SaltStack Config 中的工作节点 ID 传入。

    建议选择不超过 15 个字符的计算机名称,尤其是在 Windows 上部署工作节点时。Windows 不允许主机名超过 15 个字符。

    如果希望为要部署的计算机定义自定义命名约定,请参见 Cloud Assembly 中已部署资源的自定义命名

    saltEnvironment 在此示例中,sse 是状态文件的文件位置。

    您可能在 SaltStack Config配置 > 文件服务器中将状态文件放置在其他文件服务器位置

    stateFiles 在此示例中,doe.sls 是在指定为 saltEnvironment 的文件服务器目录中提供的状态文件。
    variables 在云模板中定义的变量将作为 pillar 传递到 Salt 状态。在此示例中,变量 user 传递到 doe.sls 文件。

    可以使用 Jinja 在状态文件中引用变量,如以下示例所示:

    {% set username = pillar.get('user', 'random') %}
    
    friend:
      user.present:
        - names:
          -  {{username}}

    doe.sls 文件可确保用户(在云模板中由变量 user 表示)存在。如果未在云模板中指定变量,则可确保用户 random 存在。

    additionalMinionParams 使用此属性可传递工作节点的其他配置参数。必须以字典的形式传递这些参数:

    • grains:使用此属性可将自定义 Salt Grain 分配给工作节点。接受一个或多个 key:value 对。这些值可以是字符串、数组或映射。

      只能在置备新计算机时分配自定义 Grain 数据。运行附加 SaltStack 资源更新 Salt 配置实施后操作时,无法分配自定义 Grain 数据。

    additionalAuthParams 使用此属性可传递额外的授权参数,用于置备将与默认 salt-cloud 配置合并/被默认 salt-cloud 配置替代的工作节点。必须以字典的形式传递这些参数。

    一个或多个 key:value 对作为字符串、数组或映射被接受。有关如何使用此属性的示例,请参见用例:如何在 Linux 环境中使用 API 部署工作节点

    注: 运行 更新 Salt 配置实施后操作时,无法分配额外的授权参数。
  6. remoteAccess 属性添加到托管 Salt 工作节点的计算机。

    如果要将 Salt 工作节点部署到 Linux 计算机,authentication 键的值可以为 usernamePasswordgeneratedPublicPrivateKey。不支持 publicPrivateKey

    如果要将 Salt 工作节点部署到 Windows 计算机,authentication 键的值必须是 usernamePassword.

     remoteAccess:
            authentication: usernamePassword
            username: adminUser
            password: adminPassword
  7. 确认 YAML 包含类似于以下示例的属性。
    resources:
      Cloud-Network:
        type: Cloud.Network
        properties:
          networkType: existing 
      Cloud_VM_1:
        type: Cloud.vSphere.Machine
        properties:
          image: ubuntu
          flavor: small
          remoteAccess:
            authentication: usernamePassword
            username: adminUser
            password: adminPassword
          networks:
            - network: ${resource["Cloud-Network"].id}
      Cloud_SaltStack_1:
        type: Cloud.SaltStack
        properties:
          masterId: saltstack_enterprise_installer
          hosts:
            - ${resource["Cloud-VM-1"].id}
          saltEnvironment: sse
          stateFiles:
            - /doe.sls
          variables: 
            user: joe
          additionalMinionParams:
            grains:
              roles:
                - webserver
                - database
  8. 测试并部署云模板。
    如果工作节点部署失败,请参见 对工作节点部署进行故障排除
  9. 验证已部署计算机的 Salt Configuration 属性。
    1. 选择部署 > 部署,然后打开部署详细信息。
    2. 拓扑选项卡上,单击计算机,然后在右侧窗格中展开 Salt 配置属性。

      “拓扑”选项卡屏幕截图,在右侧窗格中展开了“Salt 配置”属性。属性包括主节点 ID、Salt 环境和状态文件。

SaltStack Config 中验证工作节点

在虚拟机上安装工作节点后,找到工作节点并在资源上运行任何作业或命令。

过程

  1. 要打开 SaltStack Config,请单击右上角的应用程序菜单,然后单击 Cloud Services 控制台
  2. 单击 SaltStack Config 服务图标。
  3. SaltStack Config 中,展开工作节点密钥,然后单击已接受
  4. 工作节点 ID列中,单击筛选器图标,然后输入工作节点的名称。
    工作节点的名称默认为虚拟机的主机名。在此示例中,工作节点 ID 为 salt-vm-010。
    SaltStack Config 中已接受工作节点密钥的屏幕截图。
  5. 要查看详细信息,请单击工作节点的名称。
    您可以在工作节点上运行作业或命令。例如,示例磁盘使用情况。此作业返回工作节点的磁盘使用情况统计信息。
    示例工作节点 ID 详细信息页面屏幕截图

查看 Salt Grain 数据

在虚拟机上完成 Salt 工作节点部署后,可以在 Cloud Assembly 中查看工作节点的 Grain。

系统会收集工作节点的操作系统、域名、IP 地址、内核、操作系统类型、内存以及许多其他系统属性的 Salt Grain 信息。如果您无权访问 SaltStack Config,或者希望在不离开 Cloud Assembly 用户界面的情况下快速查看 Grain 数据,则可以使用拓扑选项卡查看 Grain 数据。要了解有关 Grain 数据的更多信息,请参见 Salt Grain

要查看工作节点的 Grain,请执行以下操作:

  1. Cloud Assembly 中,选择资源 > 部署,然后找到您的部署。
  2. 拓扑选项卡上,选择连接到 SaltStack Config 资源的虚拟机。
  3. 在右侧窗格中找到 Salt 配置部分,然后向下滚动以查看 Grain 数据列表。Cloud Assembly 中的 Grain 数据屏幕截图

部署工作节点后,将检索该工作节点的 Grain 数据。要查看上次更新 Grain 数据的时间,可以滚动到 Salt 配置部分的底部。

Cloud Assembly 中的上次更新 Grain 数据屏幕截图
注: 仅当对 SaltStack Config 资源运行 更新 Salt 配置实施后操作时,Grain 数据才会更新。如果在 Cloud Assembly 之外进行任何更改,则不会进行更新。