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

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

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

在 Salt 主节点上安装 Salt

在设置 SaltStack Config Cloud 之前,必须在 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 后,下一步是在要使用 SaltStack Config Cloud 进行管理的任何节点上安装工作节点服务。

之后,需要配置工作节点以与 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. 对其余的所有节点重复上述步骤。

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

此时,您已安装 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 中。