必须在基础架构上安装 Salt,这包括安装 Salt 主节点和 Salt 工作节点服务。

Salt 及其依赖项必须至少安装在标准 Automation Config 安装方案中涉及的节点上。

强烈建议在计划使用 Automation Config 进行管理的任何基础架构上预先安装 Salt。安装 Salt 可简化更新到未来 Salt 版本的过程。在开始安装 Automation Config 之前,请考虑在基础架构上安装 Salt,然后监控一段时间,以确保其稳定并正常运行。

请查阅以下指南,以确保在基础架构中实施 Salt 时您的环境遵循最佳做法:

要准备计算机以执行 Automation Config 标准安装,需要安装或升级 Salt 和 Python。在安装中涉及的所有节点上,需要存在并更新 Salt 和 Python。如果节点上未安装 Salt 和安装程序的依赖项,则安装将失败。

从 Salt 3006 版本开始,Salt Project 使用 onedir 打包系统。Onedir 代表“一个目录”,因为它包含 Salt 所需的所有可执行文件,包括 Python 和其他 Salt 依赖项。Onedir 支持 Salt 即时可用。
注意: Salt Project 强烈建议升级到 onedir 以继续接收 Salt 版本更新。从 Salt 版本 3006 开始,仅 onedir 软件包可用于升级。有关 Salt 版本和 onedir 的详细信息,请参见 知识库文章 89728
注: Salt Crystal 安装程序软件包已停用,对于未来的安装,建议使用 onedir 安装程序软件包。

必需:对于棕地/升级部署,从 Salt 3006 开始,Salt 主节点配置为以用户“salt”而不是传统的“root 用户”身份运行。因此,这可能会导致 RaaS 相关工作流(例如,工作节点部署和 RaaS 主节点插件升级)出现权限错误。

要修复此问题,请修改 /etc/salt/master.d/raas.conf 文件,将用户更改为 root:user: root

在 Salt 主节点上安装 Salt

在标准安装中,需要在 Salt 主节点上安装 Salt 主节点服务和工作节点服务。

这些说明适用于在 Redhat/Centos 7 PY3 上安装最新的 Salt 版本。如果您的计算机运行的是其他操作系统或 Python 版本,则脚本将不起作用。有关在其他操作系统或 Python 版本上安装 Salt 的信息,请参见 Salt 安装指南
注: 默认情况下,Centos 7 会阻止连接到 Salt 主节点。必须创建允许连接的防火墙规则:
  • firewall-cmd --permanent --zone=public --add-port=4505-4506/tcp
  • firewall-cmd --reload
有关详细信息,请参见 为 Salt 打开防火墙
  1. 安装 Salt 项目存储库和密钥:
    sudo yum install https://repo.saltstack.com/py3/redhat/salt-py3-repo-latest.el7.noarch.rpm
  2. 清除缓存:
    sudo yum clean expire-cache
  3. 在 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 主节点服务和工作节点服务:
    sudo systemctl start salt-master
    sudo systemctl enable salt-minion
    sudo systemctl start salt-minion

    如果需要,使用 service salt-minion restart 重新启动工作节点。

在 Salt 工作节点上安装 Salt

按照上一部分所述在 Salt 主节点上安装 Salt 后,下一步是在将成为 RaaS、Redis 数据库和 PostgreSQL 数据库的三个节点上安装工作节点服务(不是主节点服务)。

之后,需要配置工作节点以与 Salt 主节点进行通信。有关安装工作节点服务的更多详细信息,请参见 Salt 文档中的工作节点配置

要安装工作节点服务,请执行以下操作:

  1. 运行以下命令,只安装工作节点服务:
    sudo yum install salt-minion
  2. 对所有提示均回答 y,以接受所有更改。
  3. /etc/salt/minion.d 目录中创建 master.conf 文件,配置每个工作节点以与 Salt 主节点通信。在此文件中,提供 Salt 主节点的 IP 地址。例如:
    master: 192.0.2.1
  4. 启动工作节点服务:
    sudo systemctl enable salt-minion
    sudo systemctl start salt-minion

    如果需要,使用 service salt-minion restart 重新启动工作节点。

  5. 对其余的所有节点重复上述步骤。

替代方法:您也可以使用 VMware Tools 启用 Salt 工作节点。有关详细信息,请参见使用 VMware Tools 启用 Salt 工作节点

接受主节点上的工作节点密钥

此时,您已安装 Salt 主节点服务和工作节点服务,并为工作节点提供了 Salt 主节点的 IP 地址。现在,为了使 Salt 主节点能够向工作节点发送命令,下一步是接受 Salt 主节点上的工作节点密钥。

继续操作之前:

  • 确保已启用并启动 Salt 主节点服务。
  • 确保在所有节点上已启用并启动工作节点。

要接受密钥,请执行以下操作:

  1. 在 Salt 主节点的终端中,列出 Salt 主节点上的所有密钥:
    salt-key -L
  2. 检查所有工作节点 ID 是否都列在 Unacceptedkeys 中。

    如果工作节点 ID 显示在 Acceptedkeys 中,则无需进一步操作,因为这是最终目标。

  3. 使用以下命令接受每个工作节点 ID,并将 <your-minion-id> 替换为来自您网络的 ID:
    salt-key -a <your-minion-ID>

    运行 salt-key -A 会接受所有密钥。

  4. 对所有提示均回答 y
  5. 再次运行 salt-key -L 命令以确认所有工作节点都显示在 Acceptedkeys 中。

在气隙系统中安装 Salt

无法通过 Internet 定期更新 Salt 可能会给您的网络造成问题,除非网络为气隙网络。因此,强烈建议预先使用 onedir 软件包安装 Salt。

请注意,在气隙系统中,在基础架构上安装 Salt 有其利弊。