要运行 SaltStack Config 安装,必须具有 Salt。Salt 及其依赖项必须至少安装在标准 SaltStack Config 安装方案中涉及的节点上。
强烈建议在计划使用 SaltStack Config 进行管理的任何基础架构上预先安装 Salt。安装 Salt 可简化更新到未来 Salt 版本的过程。在开始安装 SaltStack Config 之前,请考虑在基础架构上安装 Salt,然后监控一段时间,以确保其稳定并正常运行。
请查阅以下指南,以确保在基础架构中实施 Salt 时您的环境遵循最佳做法:
要准备计算机以执行 SaltStack Config 标准安装,需要安装或升级 Salt 和 Python。在安装中涉及的所有节点上,需要存在并更新 Salt 和 Python。如果节点上未安装 Salt 和安装程序的依赖项,则安装将失败。
安装 Salt 依赖项
这些依赖项必须安装在安装涉及的所有节点上。在标准安装中,必须在将托管 Salt 主节点、RaaS、Redis 数据库和 PostgreSQL 数据库的所有节点上安装这些依赖项:
- OpenSSL
- 企业版 Linux 附加软件包 (EPEL)
- Python 加密
- Python OpenSSL 库
要检查这些依赖项是否存在,请执行以下操作:
- 在终端中,验证是否在每个节点上安装了这些依赖项:
sudo yum list installed | grep openssl sudo yum list installed | grep epel-release sudo yum list installed | grep python36-cryptography sudo yum list installed | grep python36-pyOpenSSL
- 如果这些依赖项不存在,请进行安装:
sudo yum install openssl sudo yum install epel-release -y sudo yum install python36-cryptography sudo yum install python36-pyOpenSSL
小心:确保安装
python36-pyOpenSSL
软件包。需要在安装后配置 SSL,但此步骤必须在安装之前完成。
在 Salt 主节点上安装 Salt
在标准安装中,需要在 Salt 主节点上安装 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 后,下一步是在将成为 RaaS、Redis 数据库和 PostgreSQL 数据库的三个节点上安装工作节点服务(不是主节点服务)。
之后,需要配置工作节点以与 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
如果需要,使用
servicesalt-minionrestart
重新启动工作节点。 - 对其余的所有节点重复上述步骤。
接受主节点上的工作节点密钥
此时,您已安装 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
中。
在气隙系统中安装 Salt
一般情况下,建议预先安装 Salt,但有一个例外情况,即在气隙系统中安装 SaltStack Config。请注意,在气隙系统中,在基础架构上安装 Salt 有其利弊。
SaltStack Config 安装程序可以在运行时安装最新稳定版本的 Salt。但是,由 SaltStack Config 安装程序安装的 Salt 版本称为 Salt Crystal 软件包。此软件包主要用于无法通过 Internet 更新 Salt 的气隙系统。由于适用于气隙系统,因此 Salt Crystal 软件包中的 Salt 版本无法通过 Internet 进行更新,必须手动更新。有关更新 Salt Crystal 软件包的信息,请参见升级 Salt Crystal。
无法通过 Internet 定期更新 Salt 可能会给您的网络造成问题,除非网络为气隙网络。因此,强烈建议预先安装 Salt,而不是使用 Salt Crystal 软件包。