SaltStack(现常称为 Salt)是一款基于 Python 的自动化运维和配置管理工具,适合 同时管理成百上千台服务器。下面从 架构、管理流程、常用功能、实战示例 四个方面说明它是如何管理多服务器的。
Salt 采用 Master–Minion 架构(也可以无 Master):
┌────────┐
│ Master │ 控制中枢(下发命令、配置)
└───┬────┘
│
┌───▼────┐ ┌───▼────┐ ┌───▼────┐
│ Minion │ │ Minion │ │ Minion │ 被管理服务器
└────────┘ └────────┘ └────────┘
Master
yum install salt-master -y
systemctl start salt-master
Minion
yum install salt-minion -y
编辑 Minion 配置:
master: master_ip
id: web01
systemctl start salt-minion
Master 查看未接受的 Minion:
salt-key -L
接受所有:
salt-key -A
✅ 完成后,Master 可以管理所有 Minion
Salt 的核心思想:
一次命令,并发控制所有目标服务器
salt 'web*' test.ping
salt -G 'os:CentOS' test.ping
nodegroups:
web: 'web*'
db: 'db*'
salt -N web test.ping
salt -C 'G@os:CentOS and web*' test.ping
salt '*' cmd.run 'uptime'
salt 'web*' cmd.run 'systemctl restart nginx'
✅ 所有目标 Minion 并行执行
Salt 通过 SLS 文件定义服务器状态。
/srv/salt/nginx/init.sls
nginx:
pkg.installed
nginx_service:
service.running:
- name: nginx
- enable: True
执行:
salt 'web*' state.apply nginx
✅ Salt 会自动:
/etc/nginx/nginx.conf:
file.managed:
- source: salt://nginx/nginx.conf.j2
- template: jinja
- context:
port: 80
适合:
salt '*' pkg.install vim
salt '*' cp.get_file salt://files/hosts /etc/hosts
salt '*' cmd.script salt://scripts/init.sh
salt '*' grains.items
salt '*' status.loadavg
| 工具 | 特点 |
|---|---|
| SaltStack | 并发强、速度快、远程执行优秀 |
| Ansible | 无 Agent、上手简单 |
| Puppet | 配置管理成熟 |
✅ Salt 最适合:大规模服务器并发管理
SaltStack 通过 Master 统一控制多个 Minion,利用 Targeting + 并发执行 + 状态定义,实现对成百上千台服务器的自动化管理。
如果你愿意,可以告诉我:
我可以给你一套 更适合你场景的 Salt 实战方案。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。