在现代 IT 运维中,自动化是提升效率、减少人为错误的关键。SaltStack 是一款开源的配置管理与远程执行工具,特别适合大规模服务器集群的统一管理。本文将手把手教你如何在 CentOS 系统上完成 SaltStack 配置,即使是零基础的小白也能轻松上手。
一、SaltStack 基础概念
SaltStack 采用 C/S 架构:
- Master(主控节点):负责下发指令、管理配置文件。
- Minion(被控节点):接收 Master 指令并执行任务。
本教程将以一台 CentOS 7 服务器作为 Master,另一台作为 Minion 进行演示。
二、准备工作
确保两台 CentOS 服务器满足以下条件:
- 操作系统为 CentOS 7 或 CentOS 8
- 网络互通,能互相 ping 通
- 关闭防火墙或开放 SaltStack 默认端口(4505 和 4506)
临时关闭防火墙命令(仅用于测试环境):
# 在 Master 和 Minion 上都执行sudo systemctl stop firewalldsudo systemctl disable firewalld
三、安装 SaltStack
SaltStack 官方提供了 EPEL 仓库支持,我们通过 yum 安装。
1. 在 Master 节点安装 salt-master
# 安装 EPEL 仓库sudo yum install -y epel-release# 安装 salt-mastersudo yum install -y salt-master# 启动并设置开机自启sudo systemctl start salt-mastersudo systemctl enable salt-master
2. 在 Minion 节点安装 salt-minion
# 安装 EPEL 仓库sudo yum install -y epel-release# 安装 salt-minionsudo yum install -y salt-minion
四、配置 SaltStack
1. 配置 Minion
编辑 Minion 配置文件,指定 Master 的 IP 地址:
sudo vi /etc/salt/minion
找到 #master: salt 行,取消注释并修改为 Master 的实际 IP,例如:
master: 192.168.1.100
保存后启动 Minion 并设置开机自启:
sudo systemctl start salt-minionsudo systemctl enable salt-minion
2. 在 Master 上接受 Minion 的密钥
Minion 首次连接会发送公钥给 Master,需手动接受:
# 查看待接受的密钥sudo salt-key -L# 接受所有密钥(生产环境建议按需接受)sudo salt-key -A# 再次查看确认sudo salt-key -L
五、测试 SaltStack 是否正常工作
使用 test.ping 模块测试通信:
sudo salt '*' test.ping
如果返回如下内容,说明配置成功:
minion-hostname: True
六、常见问题与优化建议
- 无法连接? 检查 Master IP 是否正确、网络是否通畅、端口是否开放。
- 密钥未接受? 使用
salt-key -L确认 Minion ID 是否出现在 unaccepted 列表。 - 生产环境建议:启用防火墙规则,仅允许特定 IP 访问 4505/4506 端口。
结语
通过本教程,你已经掌握了在 CentOS 系统上完成 SaltStack 配置 的完整流程。SaltStack 不仅可用于远程命令执行,还能实现配置文件分发、服务状态监控、软件包批量安装等高级功能,是 SaltStack 自动化运维 的核心工具之一。后续可深入学习 State 文件、Grains、Pillar 等高级特性,构建更强大的自动化运维体系。
希望这篇 CentOS SaltStack 配置 教程对你有所帮助!如有疑问,欢迎在评论区交流。