必须在基础架构上安装 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 项目存储库和密钥:
sudo yum install https://repo.saltstack.com/py3/redhat/salt-py3-repo-latest.el7.noarch.rpm
- 清除缓存:
sudo yum clean expire-cache
- 在 Salt 主节点上安装 Salt 主节点服务和工作节点服务:
sudo yum install salt-master sudo yum install salt-minion
- 在
/etc/salt/minion.d
目录中创建master.conf
文件。在此文件中,将 Salt 主节点的 IP 地址设置为指向自身:master: localhost
- 启动 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 文档中的工作节点配置。
要安装工作节点服务,请执行以下操作:
- 运行以下命令,只安装工作节点服务:
sudo yum install salt-minion
- 对所有提示均回答
y
,以接受所有更改。 - 在
/etc/salt/minion.d
目录中创建master.conf
文件,配置每个工作节点以与 Salt 主节点通信。在此文件中,提供 Salt 主节点的 IP 地址。例如:master: 192.0.2.1
- 启动工作节点服务:
sudo systemctl enable salt-minion sudo systemctl start salt-minion
如果需要,使用
service salt-minion restart
重新启动工作节点。 - 对其余的所有节点重复上述步骤。
接受主节点上的工作节点密钥
此时,您已安装 Salt 主节点服务和工作节点服务,并为工作节点提供了 Salt 主节点的 IP 地址。现在,为了使 Salt 主节点能够向工作节点发送命令,下一步是接受 Salt 主节点上的工作节点密钥。
继续操作之前:
- 确保已启用并启动 Salt 主节点服务。
- 确保在所有节点上已启用并启动工作节点。
要接受密钥,请执行以下操作:
- 在 Salt 主节点的终端中,列出 Salt 主节点上的所有密钥:
salt-key -L
- 检查所有工作节点 ID 是否都列在
Unacceptedkeys
中。如果工作节点 ID 显示在
Acceptedkeys
中,则无需进一步操作,因为这是最终目标。 - 使用以下命令接受每个工作节点 ID,并将 <your-minion-id> 替换为来自您网络的 ID:
salt-key -a <your-minion-ID>
运行
salt-key-A
会接受所有密钥。 - 对所有提示均回答
y
。 - 再次运行
salt-key-L
命令以确认所有工作节点都显示在Acceptedkeys
中。