获得 SaltStack Config Cloud 实例的访问权限后,可以将 Salt 主节点连接到 SaltStack Config Cloud。您可以连接内部部署或云中的 Salt 主节点。

必须授权每个 Salt 主节点连接到 SaltStack Config Cloud 实例。要授权 Salt 主节点,必须从 VMware Cloud Services 平台 (CSP) 中的帐户页面生成 API 令牌。然后,在 Salt 主节点上将 API 令牌导出为环境变量,并运行命令将 Salt 主节点连接到 SaltStack Config Cloud。

开始前

  • 您必须已有 Salt 环境,其中包含一个 Salt 主节点和至少一个 Salt 工作节点。每个 Salt 工作节点必须已连接到 Salt 主节点。有关在节点上安装 Salt 主节点和 Salt 工作节点服务的信息,请参见安装或升级 Salt(安装前)
  • 必须在每个 Salt 主节点上安装版本 8.10.1.2 或更高版本的主节点插件。
  • 您必须使用以下命令在 Salt 主节点上安装 PyJWT 和 Pika Python 库:
    pip3 install pika==1.2.0
    pip3 install pyjwt==2.3.0
  • 您必须具有以下 CSP 角色:
    • 组织角色:组织所有者或组织管理员
    • 服务角色:CSP 中 SaltStack Config 服务的超级用户
  • 将您的默认组织设置为有权访问 SaltStack Config Cloud 服务的组织。

生成 API 令牌

在将 Salt 主节点连接到 SaltStack Config Cloud 之前,必须使用 CSP 控制台生成 API 令牌。此令牌用于通过 CSP 对 Salt 主节点进行身份验证。

要生成 API 令牌,请执行以下操作:

  1. 在 Cloud Services 控制台工具栏中,单击您的用户名,然后选择我的帐户 > API 令牌
  2. 单击生成令牌

    CSP 中的 API 令牌页面

  3. 填写表单。

    在 CSP 中生成令牌表单

    1. 输入令牌的名称。
    2. 选择令牌的生存时间 (TTL)。默认持续时间为六个月。
      注: 如果遭到入侵,不会过期的令牌可能会带来安全风险。如果发生这种情况,必须撤销令牌。
    3. 定义令牌的范围。
      范围 说明
      组织角色

      组织角色决定了用户对组织资源的访问权限。

      要访问 SaltStack Config Cloud 服务,您必须选择组织管理员组织所有者角色。

      在“生成新 API 令牌”页面上选中“组织管理员”角色
      服务角色

      服务角色是内置的预定义权限集,可授予 VMware Cloud Services 的访问权限。

      要访问 SaltStack Config Cloud 服务,请搜索 SaltStack Config 服务,然后选择 Salt 主节点服务角色。

      为 SaltStack Config 服务选择的 Salt 主节点服务角色
    4. (可选)设置电子邮件首选项,以便在令牌即将过期时接收提醒。
    5. 单击生成

      新生成的 API 令牌将显示在生成的令牌窗口中。

  4. 将令牌凭据保存到安全位置。

    生成令牌后,您将只能在 API 令牌页面上看到令牌的名称,而看不到凭据。要重新生成令牌,请单击重新生成

  5. 单击继续

将 Salt 主节点连接到 SaltStack Config Cloud

生成 API 令牌后,您可以使用它将 Salt 主节点连接到 SaltStack Config Cloud。

连接 Salt 主节点:

  1. 登录到 Salt 主节点,并验证 /etc/salt/master.d/raas.conf 文件是否存在。

    如果不存在,则必须安装并配置主节点插件

  2. 在 Salt 主节点的终端中,将 API 令牌保存为环境变量。
    export CSP_API_TOKEN=<api token value>
  3. 如果 Salt 主节点运行的是版本 8.9.0 或更低版本的主节点插件,则必须在 SaltStack Config Cloud 中重新注册 Salt 主节点。有关详细信息,请参见如何将 Salt 主节点重新连接到 SaltStack Config Cloud
  4. 如果 Salt 主节点运行的是版本 8.9.1 或更高版本的主节点插件,请运行以下命令,将 Salt 主节点连接到 SaltStack Config Cloud,并将 ssc-urlcsp-url 值替换为特定于区域的 URL。
    sseapi-config join --ssc-url <SSC URL> --csp-url <CSP URL>
    区域名称 SSC URL CSP URL
    US https://ssc-gateway.mgmt.cloud.vmware.com https://console.cloud.vmware.com
    DE(德国) https://de.ssc-gateway.mgmt.cloud.vmware.com https://console.cloud.vmware.com
    IN(印度) https://in.ssc-gateway.mgmt.cloud.vmware.com https://console.cloud.vmware.com

    以下代码示例展示了 US 区域的成功响应示例。

    2022-08-16 21:28:26 [INFO] SSEAPE joining SSC Cloud... v8.9.1.1 2022-08-16T15:28:12
    2022-08-16 21:28:26 [INFO] Retrieving CSP auth token.
    2022-08-16 21:28:27 [INFO] Creating new oauth app.
    2022-08-16 21:28:27 [INFO] Finished with oauth app [Salt Master App for master id:my-salt-master] in org [6bh70973-b1g2-716c-6i21-i9974a6gdc85].
    2022-08-16 21:28:29 [INFO] Added service role [saltstack:master] for oauth app [Salt Master App for master id:my-salt-master].
    2022-08-16 21:28:29 [INFO] Created pillar [CSP_AUTH_TOKEN].
    2022-08-16 21:28:29 [INFO] Updated master config. Please restart master for config changes to take effect.
    2022-08-16 21:28:29 [INFO] Updated master cloud.conf.
    2022-08-16 21:28:29 [INFO] Validating connectivity to SaltStack Cloud instance [https://ssc-gateway.mgmt.cloud.vmware.com]
    2022-08-16 21:28:29 [INFO] Successfully validated connectivity to SaltStack Cloud instance [https://ssc-gateway.mgmt.cloud.vmware.com]. Response: {'version': 'v8.9.0.5', 'vipVersion': '8.9.0'}
    2022-08-16 21:28:29 [INFO] Finished SSEAPE joining SSC Cloud... v8.9.1.1 2022-08-16T15:28:12
    
  5. 重新启动 Salt 主节点服务。
    systemctl restart salt-master
  6. 针对每个 Salt 主节点重复此过程。
注: 将每个 Salt 主节点连接到 SaltStack Config Cloud 后,可以删除 API 令牌。仅在将 Salt 主节点连接到 SaltStack Config Cloud 时才需要 API 令牌。

运行 sseapi-config 命令后,将在 CSP 组织中为每个 Salt 主节点创建一个 OAuth 应用程序。主节点使用 OAuth 应用程序获取 CSP 访问令牌,该令牌附加到 SaltStack Config Cloud 的每个请求。您可以通过选择组织 > OAuth 应用程序来查看 OAuth 应用程序的详细信息。

该命令还会在 Salt 主节点上创建名为 CSP_AUTH_TOKEN 的 Pillar 数据。Pillar 是在 Salt 主节点上存储数据的结构,并传递到已获得授权能够访问这些数据的一个或多个工作节点。Pillar 数据存储在 /srv/pillar/csp.sls 中,并且包含客户端 ID、密钥、您的组织 ID 和 CSP URL。

示例 Pillar 数据:
CSP_AUTH_TOKEN:
   csp_client_id: kH8wIvNxMJEGGmk7uCx4MBfPswEw7PpLaDh
   csp_client_secret: ebH9iuXnZqUOkuWKwfHXPjyYc5Umpa00mI9Wx3dpEMlrUWNy95
   csp_org_id: 6bh70973-b1g2-716c-6i21-i9974a6gdc85
   csp_url: https://console.cloud.vmware.com

如果需要轮换密钥,可以重新运行 sseapi-config join 命令。

有关 Pillar 数据的详细信息,请参见如何创建状态文件和 Pillar 数据

接受 Salt 主节点密钥

在 Salt 主节点启动期间(除非使用密码身份验证),将生成公钥文件。主节点将开始运行,但与 SaltStack Config Cloud 的通信将失败,直至接受密钥。

接受 Salt 主节点密钥:

  1. 登录到 SaltStack Config 用户界面。
  2. 从左上方的导航栏中,单击菜单 菜单图标,然后选择管理以访问“管理”工作区。单击主节点密钥选项卡。
  3. 从侧边菜单中,单击挂起,以显示包含所有挂起主节点密钥的列表。

    如果看不到主节点密钥,请参见SaltStack Config Cloud 进行故障排除

  4. 选中主节点密钥旁边的框以将其选中。然后,单击接受密钥
  5. 接受主节点密钥后,将显示一条警示,指示您有挂起密钥需要接受。要接受这些工作节点密钥,请转到工作节点密钥 > 挂起
  6. 选中工作节点旁边的框以将其选中。然后,单击接受密钥
  7. 在确认对话框中单击接受

现已接受密钥。几秒钟之后工作节点将显示在已接受选项卡下以及目标工作区中。

可以在 SaltStack Config 用户界面中运行 test.ping 命令,验证 Salt 主节点和 Salt 工作节点是否正在通信。有关详细信息,请参见从“目标”工作区运行临时作业

后续操作

成功运行 test.ping 命令后,可以开始在 SaltStack Config Cloud 中使用事件驱动型自动化在任何规模的虚拟机上置备、配置和部署软件。

此外,还可以将 SaltStack Config CloudCloud Assembly 集成,以使用云模板部署 Salt 工作节点和状态文件。

下表列出了一些有用的资源,以了解更多信息。

要了解... 请参见
管理 SaltStack Config Cloud 的用户访问权限
SaltStack Config CloudCloud Assembly 集成 在 vRealize Automation Cloud 中配置 SaltStack Config 集成
SaltStack Config 中的主要功能 SaltStack Config 入门