要设置并验证 SaltStack Config Cloud 实例,请在 Salt 主节点上安装 Salt 和主节点插件,在 Cloud Services 控制台中生成 API 令牌,然后将 Salt 主节点连接到 SaltStack Config Cloud。您可以连接内部部署或云中的 Salt 主节点。

必备条件

在设置 SaltStack Config Cloud 之前,必须完成以下必备条件:
  • 确认您在 VMware Cloud Services 中具有以下角色:
    • 组织角色:组织所有者或组织管理员
    • 服务角色:SaltStack Config Cloud 服务的超级用户
  • 将您的默认组织设置为有权访问 SaltStack Config Cloud 服务的组织。

设置概览

设置 SaltStack Config Cloud 包括以下任务。

  1. 在 Salt 主节点和要使用 SaltStack Config Cloud 管理的节点上安装 Salt。有关详细信息,请参见步骤 1:安装 Salt
  2. 在必须与 SaltStack Config Cloud 通信的 Salt 主节点上安装或升级主节点插件。有关详细信息,请参见步骤 2:安装并配置主节点插件
  3. 生成 API 令牌以便 Salt 主节点能够连接到 SaltStack Config Cloud。有关详细信息,请参见步骤 3:生成 API 令牌
  4. 将 Salt 主节点连接到 SaltStack Config Cloud。有关详细信息,请参见步骤 4:将 Salt 主节点连接到 SaltStack Config Cloud
  5. 接受 SaltStack Config Cloud 用户界面中的 Salt 主节点密钥。有关详细信息,请参见步骤 5:接受 Salt 主节点密钥

步骤 1:安装 Salt

必须先在 Salt 主节点上安装 Salt,然后才能使用 SaltStack Config Cloud

必须在 Salt 主节点上安装 Salt 主节点服务和 Salt 工作节点服务:以下说明在 RHEL 8 上安装最新的 Salt 版本。有关在其他操作系统或 Python 版本上安装 Salt 的信息,请参见 Salt 安装指南

  1. 在 Salt 主节点的终端中,运行以下命令以安装 Salt Project 存储库和密钥:
    sudo rpm --import https://repo.saltproject.io/py3/redhat/8/x86_64/latest/SALTSTACK-GPG-KEY.pub
    curl -fsSL https://repo.saltproject.io/py3/redhat/8/x86_64/latest.repo | sudo tee /etc/yum.repos.d/salt.repo
  2. 运行 sudo yum clean expire-cache
  3. 在 Salt 主节点上安装 Salt 工作节点服务和 Salt 主节点服务:
    sudo yum install salt-master
    sudo yum install salt-minion
  4. /etc/salt/minion.d 目录中创建 master.conf 文件。在此文件中,将 Salt 主节点的 IP 地址设置为指向自身:
    master: localhost
  5. 启动 Salt 主节点服务和 Salt 工作节点服务:
    sudo systemctl enable salt-master && sudo systemctl start salt-master
    sudo systemctl enable salt-minion && sudo systemctl start salt-minion

步骤 2:安装并配置主节点插件

在基础架构上安装 Salt 后,必须安装和配置主节点插件,以便 Salt 主节点能够与 SaltStack Config Cloud 进行通信。

如果已有 Salt 主节点,请先升级主节点插件,然后再将 Salt 主节点连接到 SaltStack Config Cloud。有关详细信息,请参见升级主节点插件

要安装和配置主节点插件,请执行以下操作:

  1. 登录到 Salt 主节点。
  2. 使用以下命令在 Salt 主节点上安装 PyJWT 库和 Pika Python 库:
    salt-call --local pip.install pika==1.2.0 target='/usr'
    salt-call --local pip.install pyjwt==2.3.0 target='/usr'
  3. (如有必要)从 Customer Connect 下载主节点插件 wheel。

    主节点插件包含在自动安装程序 .tar.gz 文件中。下载并提取 .tar.gz 文件后,可以在 sse-installer/salt/sse/eapi_plugin/files 目录中找到主节点插件。

  4. 通过手动安装更新的 Python wheel 来安装主节点插件。使用以下示例命令,并替换为 wheel 文件的确切名称:

    RHEL/CentOS

    salt-call --local pip.install SSEAPE-file-name.whl target='/usr'
    Ubuntu
    salt-call --local pip.install SSEAPE-file-name.whl target='/usr'
  5. 生成主配置设置。
    1. 验证 /etc/salt/master.d 目录是否存在,或创建该目录。
    2. 运行以下命令以生成主配置文件。
      sudo sseapi-config --all > /etc/salt/master.d/raas.conf

      如果运行此命令导致错误,请参见对 SaltStack Config Cloud 进行故障排除

  6. 重新启动 Salt 主节点服务。
    sudo systemctl restart salt-master

步骤 3:生成 API 令牌

在将 Salt 主节点连接到 SaltStack Config Cloud 之前,必须使用 Cloud Services 控制台生成 API 令牌。此令牌用于通过 VMware Cloud Services 对 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. 单击继续

步骤 4:将 Salt 主节点连接到 SaltStack Config Cloud

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

连接 Salt 主节点:

  1. 在 Salt 主节点的终端中,将 API 令牌保存为环境变量。
    export CSP_API_TOKEN=<api token value>
  2. 运行以下命令,将 Salt 主节点连接到 SaltStack Config Cloud,并将 ssc-urlcsp-url 值替换为特定于区域的 URL。
    sseapi-config join --ssc-url <SSC URL> --csp-url <CSP URL>
    注:

    如果要使用 sudo,请运行以下命令:

    sudo CSP_API_TOKEN=<api token value> 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
    

    如果运行此命令导致错误,请参见对 SaltStack Config Cloud 进行故障排除

  3. 重新启动 Salt 主节点服务。
    systemctl restart salt-master
  4. 针对每个 Salt 主节点重复此过程。
    注: 将每个 Salt 主节点连接到 SaltStack Config Cloud 后,可以删除 API 令牌。仅在将 Salt 主节点连接到 SaltStack Config Cloud 时才需要 API 令牌。

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

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

示例 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

步骤 5:接受 Salt 主节点密钥

将 Salt 主节点连接到 SaltStack Config Cloud 后,必须在 SaltStack Config Cloud 用户界面中接受 Salt 主节点的密钥。

要接受 Salt 主节点密钥,请执行以下操作:

  1. 登录到 SaltStack Config 用户界面。
  2. 从左上方的导航栏中,单击菜单 菜单图标,然后选择管理以访问“管理”工作区。单击主节点密钥选项卡。
  3. 选中主节点密钥旁边的框以将其选中。然后,单击接受密钥
  4. 如果已将 Salt 工作节点连接到 Salt 主节点,则会显示一条警示,指示您具有待接受的工作节点密钥。要接受这些工作节点密钥,请转到工作节点密钥 > 挂起
    1. 选中工作节点旁边的框以将其选中。然后,单击接受密钥

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

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