要设置并验证 SaltStack Config Cloud 实例,请在 Salt 主节点上安装 Salt 和主节点插件,在 Cloud Services 控制台中生成 API 令牌,然后将 Salt 主节点连接到 SaltStack Config Cloud。您可以连接内部部署或云中的 Salt 主节点。
必备条件
- 确认您在 VMware Cloud Services 中具有以下角色:
- 组织角色:组织所有者或组织管理员
- 服务角色:SaltStack Config Cloud 服务的超级用户
- 将您的默认组织设置为有权访问 SaltStack Config Cloud 服务的组织。
设置概览
设置 SaltStack Config Cloud 包括以下任务。
- 在 Salt 主节点和要使用 SaltStack Config Cloud 管理的节点上安装 Salt。有关详细信息,请参见步骤 1:安装 Salt。
- 在必须与 SaltStack Config Cloud 通信的 Salt 主节点上安装或升级主节点插件。有关详细信息,请参见步骤 2:安装并配置主节点插件。
- 生成 API 令牌以便 Salt 主节点能够连接到 SaltStack Config Cloud。有关详细信息,请参见步骤 3:生成 API 令牌。
- 将 Salt 主节点连接到 SaltStack Config Cloud。有关详细信息,请参见步骤 4:将 Salt 主节点连接到 SaltStack Config Cloud。
- 接受 SaltStack Config Cloud 用户界面中的 Salt 主节点密钥。有关详细信息,请参见步骤 5:接受 Salt 主节点密钥。
步骤 1:安装 Salt
必须先在 Salt 主节点上安装 Salt,然后才能使用 SaltStack Config Cloud。
必须在 Salt 主节点上安装 Salt 主节点服务和 Salt 工作节点服务:以下说明在 RHEL 8 上安装最新的 Salt 版本。有关在其他操作系统或 Python 版本上安装 Salt 的信息,请参见 Salt 安装指南。
- 在 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
- 运行
sudo yum clean expire-cache
。 - 在 Salt 主节点上安装 Salt 工作节点服务和 Salt 主节点服务:
sudo yum install salt-master sudo yum install salt-minion
- 在
/etc/salt/minion.d
目录中创建master.conf
文件。在此文件中,将 Salt 主节点的 IP 地址设置为指向自身:master: localhost
- 启动 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。有关详细信息,请参见升级主节点插件。
要安装和配置主节点插件,请执行以下操作:
- 登录到 Salt 主节点。
- 使用以下命令在 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'
- (如有必要)从 Customer Connect 下载主节点插件 wheel。
主节点插件包含在自动安装程序 .tar.gz 文件中。下载并提取 .tar.gz 文件后,可以在
sse-installer/salt/sse/eapi_plugin/files
目录中找到主节点插件。 - 通过手动安装更新的 Python wheel 来安装主节点插件。使用以下示例命令,并替换为 wheel 文件的确切名称:
RHEL/CentOS
salt-call --local pip.install SSEAPE-file-name.whl target='/usr'
Ubuntusalt-call --local pip.install SSEAPE-file-name.whl target='/usr'
- 生成主配置设置。
- 验证
/etc/salt/master.d
目录是否存在,或创建该目录。 - 运行以下命令以生成主配置文件。
sudo sseapi-config --all > /etc/salt/master.d/raas.conf
如果运行此命令导致错误,请参见对 SaltStack Config Cloud 进行故障排除。
- 验证
- 重新启动 Salt 主节点服务。
sudo systemctl restart salt-master
步骤 3:生成 API 令牌
在将 Salt 主节点连接到 SaltStack Config Cloud 之前,必须使用 Cloud Services 控制台生成 API 令牌。此令牌用于通过 VMware Cloud Services 对 Salt 主节点进行身份验证。
要生成 API 令牌,请执行以下操作:
- 在 Cloud Services 控制台工具栏中,单击您的用户名,然后选择 。
- 单击生成令牌。
- 填写表单。
- 输入令牌的名称。
- 选择令牌的生存时间 (TTL)。默认持续时间为六个月。
注: 如果遭到入侵,不会过期的令牌可能会带来安全风险。如果发生这种情况,必须撤销令牌。
- 定义令牌的范围。
范围 说明 组织角色 组织角色决定了用户对组织资源的访问权限。
要访问 SaltStack Config Cloud 服务,您必须选择组织管理员或组织所有者角色。
服务角色 服务角色是内置的预定义权限集,可授予 VMware Cloud Services 的访问权限。
要访问 SaltStack Config Cloud 服务,请搜索 SaltStack Config 服务,然后选择 Salt 主节点服务角色。
- (可选)设置电子邮件首选项,以便在令牌即将过期时接收提醒。
- 单击生成。
新生成的 API 令牌将显示在生成的令牌窗口中。
- 将令牌凭据保存到安全位置。
生成令牌后,您将只能在 API 令牌页面上看到令牌的名称,而看不到凭据。要重新生成令牌,请单击重新生成。
- 单击继续。
步骤 4:将 Salt 主节点连接到 SaltStack Config Cloud
生成 API 令牌后,您可以使用它将 Salt 主节点连接到 SaltStack Config Cloud。
连接 Salt 主节点:
- 在 Salt 主节点的终端中,将 API 令牌保存为环境变量。
export CSP_API_TOKEN=<api token value>
- 运行以下命令,将 Salt 主节点连接到 SaltStack Config Cloud,并将
ssc-url
和csp-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 进行故障排除。
- 重新启动 Salt 主节点服务。
systemctl restart salt-master
- 针对每个 Salt 主节点重复此过程。
注: 将每个 Salt 主节点连接到 SaltStack Config Cloud 后,可以删除 API 令牌。仅在将 Salt 主节点连接到 SaltStack Config Cloud 时才需要 API 令牌。
运行 sseapi-config
命令后,将在组织中为每个 Salt 主节点创建一个 OAuth 应用程序。Salt 主节点使用 OAuth 应用程序获取访问令牌,该令牌附加到 SaltStack Config Cloud 的每个请求。您可以通过选择 来查看 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 主节点密钥,请执行以下操作:
- 登录到 SaltStack Config 用户界面。
- 从左上方的导航栏中,单击菜单
,然后选择管理以访问“管理”工作区。单击主节点密钥选项卡。
- 选中主节点密钥旁边的框以将其选中。然后,单击接受密钥。
- 如果已将 Salt 工作节点连接到 Salt 主节点,则会显示一条警示,指示您具有待接受的工作节点密钥。要接受这些工作节点密钥,请转到
- 选中工作节点旁边的框以将其选中。然后,单击接受密钥。
现已接受密钥。几秒钟之后工作节点将显示在已接受选项卡下以及目标工作区中。
。
可以在 SaltStack Config 用户界面中运行 test.ping 命令,验证 Salt 主节点和 Salt 工作节点是否正在通信。有关详细信息,请参见从“目标”工作区运行临时作业。