温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

SaltStack如何管理多个服务器

发布时间:2026-07-02 10:53:51 来源:亿速云 阅读:110 作者:小樊 栏目:系统运维

SaltStack(现常称为 Salt)是一款基于 Python 的自动化运维和配置管理工具,适合 同时管理成百上千台服务器。下面从 架构、管理流程、常用功能、实战示例 四个方面说明它是如何管理多服务器的。


一、SaltStack 的基本架构(理解核心)

Salt 采用 Master–Minion 架构(也可以无 Master):

┌────────┐
│ Master │  控制中枢(下发命令、配置)
└───┬────┘
    │
┌───▼────┐  ┌───▼────┐  ┌───▼────┐
│ Minion │  │ Minion │  │ Minion │  被管理服务器
└────────┘  └────────┘  └────────┘

关键角色

  • Master:管理中心(一台或多台)
  • Minion:被管理的服务器
  • ZeroMQ:通信底层(速度快)
  • Targeting:指定要操作哪些 Minion

二、多服务器管理的基本流程

1️⃣ 安装 Salt

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

2️⃣ Minion 认证(Accept Keys)

Master 查看未接受的 Minion:

salt-key -L

接受所有:

salt-key -A

✅ 完成后,Master 可以管理所有 Minion


三、Salt 如何“管理多个服务器”

Salt 的核心思想:

一次命令,并发控制所有目标服务器


四、Targeting:指定管理哪些服务器(关键)

1️⃣ 按 ID 匹配

salt 'web*' test.ping

2️⃣ 按 Grains(系统信息)

salt -G 'os:CentOS' test.ping

3️⃣ 按分组(NodeGroup)

nodegroups:
  web: 'web*'
  db: 'db*'
salt -N web test.ping

4️⃣ 复合匹配

salt -C 'G@os:CentOS and web*' test.ping

五、远程执行命令(批量操作服务器)

salt '*' cmd.run 'uptime'
salt 'web*' cmd.run 'systemctl restart nginx'

✅ 所有目标 Minion 并行执行


六、状态管理(配置即代码,核心功能)

Salt 通过 SLS 文件定义服务器状态。

示例:安装 Nginx

/srv/salt/nginx/init.sls

nginx:
  pkg.installed

nginx_service:
  service.running:
    - name: nginx
    - enable: True

执行:

salt 'web*' state.apply nginx

✅ Salt 会自动:

  • 判断是否已经安装
  • 安装 / 启动 / 设置开机自启

七、批量配置管理(模板 + 变量)

Jinja 模板示例

/etc/nginx/nginx.conf:
  file.managed:
    - source: salt://nginx/nginx.conf.j2
    - template: jinja
    - context:
        port: 80

适合:

  • 配置文件差异化管理
  • 多环境(dev / test / prod)

八、常见多服务器管理场景

场景 1:批量安装软件

salt '*' pkg.install vim

场景 2:批量分发文件

salt '*' cp.get_file salt://files/hosts /etc/hosts

场景 3:批量执行脚本

salt '*' cmd.script salt://scripts/init.sh

场景 4:服务器状态巡检

salt '*' grains.items
salt '*' status.loadavg

九、SaltStack vs 其他工具

工具 特点
SaltStack 并发强、速度快、远程执行优秀
Ansible 无 Agent、上手简单
Puppet 配置管理成熟

✅ Salt 最适合:大规模服务器并发管理


十、进阶方向(如果你需要)

  • Salt SSH(无 Minion)
  • Salt Runner(Master 端自动化)
  • Salt Cloud(云主机管理)
  • Salt API(与 CI/CD 集成)

总结一句话

SaltStack 通过 Master 统一控制多个 Minion,利用 Targeting + 并发执行 + 状态定义,实现对成百上千台服务器的自动化管理。

如果你愿意,可以告诉我:

  • 你现在管理多少台服务器?
  • 是物理机、虚拟机,还是云主机?
  • 主要用途(部署 / 配置 / 巡检)?

我可以给你一套 更适合你场景的 Salt 实战方案。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手