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

必备条件

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

设置概览

设置 Automation Config 包括以下任务。

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

步骤 1:安装 Salt

必须在 Salt 主节点上安装 Salt 主节点服务和 Salt 工作节点服务,然后才能使用 Automation Config

在安装 Salt 之前,请安装所需的任何依赖项。有关详细信息,请参见《Salt 安装指南》中的 安装依赖项。有关支持的 Salt 操作系统列表,请参见 Salt 支持的操作系统
注: Salt Open Project 文档由 VMware 进行维护。

以下说明在 RHEL 8 上安装最新的 Salt 版本。有关在其他操作系统上安装 Salt 的信息,请参见 Salt 安装指南

  1. 如果要在脱机或安全环境中安装 Salt,则必须配置网络代理以允许安装 Salt 所需的以下 URL。
    • https://repo.saltproject.io
    • https://pypi.org
    • https://python.org
    通过网络代理确认网络活动,然后再继续安装。
  2. 在 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/salt/py3/redhat/8/x86_64/latest.repo | sudo tee /etc/yum.repos.d/salt.repo
  3. 运行 sudo yum clean expire-cache
  4. 在 Salt 主节点上安装 Salt 工作节点服务和 Salt 主节点服务:
    sudo yum install salt-master
    sudo yum install salt-minion
  5. master.conf 目录中创建 /etc/salt/minion.d 文件。
    touch master.conf
  6. master.conf 文件中,将 Salt 主节点的 IP 地址设置为指向自身:
    master: localhost
  7. 启动 Salt 主节点服务和 Salt 工作节点服务:
    sudo systemctl enable salt-master && sudo systemctl start salt-master
    sudo systemctl enable salt-minion && sudo systemctl start salt-minion
  8. 如果使用网络代理,请对网络设置相应地设置 HTTP_PROXYHTTPS_PROXY 变量。
    1. 如果使用 systemd 管理 Salt 主节点服务,请将 HTTP_PROXYHTTPS_PROXY 环境变量添加到 salt-master.service 文件。
    2. 运行 systemctl daemon-reload
    3. 运行 systemctl restart salt-master 以重新启动 Salt 主节点服务。

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

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

如果已有 Salt 主节点,请先将主节点插件升级到最新的可用版本,然后再将 Salt 主节点连接到 Automation Config。有关详细信息,请参见使用“主节点插件”工作区

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

  1. 登录到 Salt 主节点。
  2. 主节点插件工作区下载主节点插件的最新版本。主节点插件版本通常由四个数字组成,例如 8.12.1.2。
    重要说明:

    主节点插件的版本必须与 Automation Config 版本的前三个数字匹配。例如,如果 Automation Config 版本为 8.12.1,则主节点插件版本必须为 8.12.1.0 或更高版本。可以在主节点插件工作区中找到 Automation Config 的版本。

  3. 通过手动安装 Python 驱动安装主节点插件。使用以下示例命令,并替换为 wheel 文件的确切名称:
    salt-call --local pip.install /path/to/SSEAPE-file-name.whl

    对于非气隙环境,运行此命令时,如果依赖项尚不存在,则会自动安装这些依赖项。对于气隙环境,请参阅知识库文章在气隙系统上安装 Salt 主节点插件

  4. 生成主配置设置。
    1. 验证 /etc/salt/master.d 目录是否存在,或创建该目录。
    2. 运行以下命令以生成主配置文件。
      sudo sseapi-config --all > /etc/salt/master.d/raas.conf

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

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

步骤 3:生成 API 令牌

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

注: 您必须在组织中具有 组织管理员角色才能完成此步骤。要查看您的组织角色,请打开 Cloud Services 控制台,单击您的用户名,然后选择 我的帐户 > 我的角色

如果您未分配有组织管理员角色,请联系组织所有者。

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

  1. 在 Cloud Services 控制台上,单击您的用户名,然后选择我的帐户 > API 令牌
  2. 单击生成令牌
  3. 填写表单。

    Cloud Services 控制台中的生成令牌表单

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

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

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

      要访问 Automation Config 服务,请搜索 VMware Aria Automation 服务。

      单击 Config 服务旁边的下拉箭头,然后选择 Salt 主节点服务角色。

    4. (可选)设置电子邮件首选项,以便在令牌即将过期时接收提醒。
    5. 单击生成

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

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

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

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

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

连接 Salt 主节点:

  1. 在 Salt 主节点的终端中,将 API 令牌保存为环境变量。
    export CSP_API_TOKEN=<api token value>
  2. 运行 sseapi-config join 命令,将 Salt 主节点连接到 Automation Config
    1. 如果您是首次将 Salt 主节点连接到 Automation Config,请运行以下命令,并将 ssc-urlcsp-url 值替换为特定于区域的 URL。
      sseapi-config join --ssc-url <SSC URL> --csp-url <CSP URL>
    2. 如果要使用 sudo,请运行以下命令:
      sudo CSP_API_TOKEN=<api token value> sseapi-config join --ssc-url <SSC URL> --csp-url <CSP URL>
    3. 如果需要重做联接过程,请重新运行 sseapi-config join 命令,并传递标志 --override-oauth-app
      sseapi-config join --ssc-url <SSC URL> --csp-url <CSP URL> --override-oauth-app

      --override-oauth-app 标志会删除用于获取访问令牌的 OAuth 应用程序并重新创建。

    表 1. Automation Config 的区域 URL
    区域 Automation Config URL Cloud Services URL
    US https://ssc-gateway.mgmt.cloud.vmware.com https://console.cloud.vmware.com
    德国 https://de.ssc-gateway.mgmt.cloud.vmware.com https://console.cloud.vmware.com
    印度 https://in.ssc-gateway.mgmt.cloud.vmware.com https://console.cloud.vmware.com
    加拿大 https://ca.ssc-gateway.mgmt.cloud.vmware.com https://console.cloud.vmware.com
    澳大利亚 https://au.ssc-gateway.mgmt.cloud.vmware.com https://console.cloud.vmware.com
    UK https://uk.ssc-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
    

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

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

运行 sseapi-config 命令后,将在组织中为每个 Salt 主节点创建一个 OAuth 应用程序。Salt 主节点使用 OAuth 应用程序获取访问令牌,该令牌附加到 Automation Config 的每个请求。您可以通过选择组织 > 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 主节点连接到 Automation Config 后,必须在 Automation Config 用户界面中接受 Salt 主节点的密钥。

您必须在 Automation Config 中具有超级用户角色才能接受 Salt 主节点的密钥。有关详细信息,请参见如何定义用户角色

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

  1. 登录到 Automation Config 用户界面。
  2. 从左上方的导航栏中,单击菜单 菜单图标,然后选择管理以访问管理工作区。单击主节点密钥选项卡。

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

    注: 通过检查密钥指纹,可以验证挂起的主密钥是否来自正确的 Salt 主节点。在 Salt 主节点上,运行 sseapi-config auth 以查看密钥指纹,然后验证其是否与您在 主节点密钥选项卡中看到的指纹相同。
  3. 选中主节点密钥旁边的框以将其选中。然后,单击接受密钥
  4. 如果已将 Salt 工作节点连接到 Salt 主节点,则会显示一条警示,指示您具有待接受的工作节点密钥。要接受这些工作节点密钥,请转到工作节点密钥 > 挂起
    1. 选中工作节点旁边的框以将其选中。然后,单击接受密钥

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

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

要在不同的节点上添加更多 Salt 工作节点,请按照此过程的步骤 1 操作,省略任何命令以安装或启用 salt-master,然后编辑 master.conf 以指向 Salt 主节点的主机名或 IP。有关详细信息,请参见配置 Salt 工作节点

如果 Salt 主节点和 Salt 工作节点未进行通信,请参见Automation Config 进行故障排除