saltstack

本文介绍如何使用SaltStack进行服务器基础架构的集中化管理。SaltStack支持配置管理、远程执行和监控等功能,采用Python语言实现,并利用ZeroMQ构建。文中详细讲解了安装epel源、安装和配置saltstack-master与saltstack-minion的过程,以及如何测试master和minion之间的连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SaltStack是一个服务器基础架构集中化管理平台,具备配置管理、远程执行、监控等功能,一般可以理解为简化版的puppet和加强版的func。SaltStack基于Python语言实现,结合轻量级消息队列(ZeroMQ)与Python第三方模块(Pyzmq、PyCrypto、Pyjinjia2、python-msgpack和PyYAML等)构建。

通过部署SaltStack环境,我们可以在成千上万台服务器上做到批量执行命令,根据不同业务特性进行配置集中化管理、分发文件、采集服务器数据、操作系统基础及软件包管理等,SaltStack是运维人员提高工作效率、规范业务配置与操作的利器。

一、安装epel yum源

yum -y install epel-release 
yum clean all 
yum makecache

二、安装 saltstack-master 并配置

saltstack-master 安装: yum -y install salt-master
saltstack-master 配置: 如下图,修改 salt-master 本身监听地址
  • 1
  • 2

这里写图片描述

三、安装 saltstack-minion 并配置

saltstack-minion 安装: yum -y install salt-minion
saltstack-minion 配置: 如下图,指定 salt-master 地址
  • 1
  • 2

这里写图片描述

四、启动 saltstack-master 和 saltstack-minion

1、启动 salt-master

这里写图片描述

2、启动 salt-minion

这里写图片描述

五、测试 saltstack (接下来都在 salt-master 端操作)

1、查看 minion 列表(这时候 saltstack-minion是红色的)

这里写图片描述

2、认证所有 key,当然你也可以通过 
salt-key -a saltstack-minion 指定某台 minion 进行认证 key

这里写图片描述

3、接着继续查看 minion 列表 (这时候saltstack-minion 已经变为绿色,说明 key 已被添加)

这里写图片描述

4、简单测试(通过 saltstack-master 进行检测)

这里写图片描述

可以ping到 salt-minion 返回值为 True,说明 salt-master 和 salt-minion 可以通讯,安装到此结束。

### SaltStack 安装、配置与使用指南 #### 1. SaltStack 简介 SaltStack 是一个基于 Python 开发的基础设施管理工具,采用 C/S 架构,由服务端(Master)和客户端(Minion)组成。它通过 ZeroMQ 进行通信,具有远程命令执行、配置管理和云管理三大核心功能。相较于 Puppet 和 Chef,SaltStack 更加轻量级且易于配置,适合大规模服务器的批量管理[^2]。 #### 2. SaltStack 安装步骤 ##### 2.1 安装 Master 节点 在 CentOS/RHEL 上安装 SaltStack Master: ```bash # 添加 EPEL 仓库 sudo yum install epel-release -y # 安装 SaltStack Master sudo yum install salt-master -y # 启动并启用服务 sudo systemctl start salt-master sudo systemctl enable salt-master ``` ##### 2.2 安装 Minion 节点 在 CentOS/RHEL 上安装 SaltStack Minion: ```bash # 添加 EPEL 仓库 sudo yum install epel-release -y # 安装 SaltStack Minion sudo yum install salt-minion -y # 配置 Minion 指向 Master echo "master: <master_ip>" | sudo tee /etc/salt/minion # 启动并启用服务 sudo systemctl start salt-minion sudo systemctl enable salt-minion ``` ##### 2.3 认证 Minion 在 Master 上接受 Minion 的密钥: ```bash # 查看待认证的 Minion sudo salt-key -L # 接受所有 Minion 密钥 sudo salt-key -A ``` #### 3. SaltStack 基本配置 ##### 3.1 配置文件位置 - **Master 配置文件**:`/etc/salt/master` - **Minion 配置文件**:`/etc/salt/minion` ##### 3.2 Grains 配置 Grains 是 SaltStack 中用于存储静态信息的机制。可以在 Minion 上定义自定义 Grains,例如: ```yaml # /etc/salt/grains role: webserver env: production ``` 之后重启 Minion 服务以应用更改: ```bash sudo systemctl restart salt-minion ``` 可以通过以下命令获取 Grains 信息: ```bash salt 'zabbix' grains.item role env mysql ``` 输出示例: ``` zabbix: ---------- env: test mysql: role: zabbix ``` #### 4. SaltStack 使用示例 ##### 4.1 远程命令执行 SaltStack 支持通过 `cmd.run` 执行远程命令。例如,在所有 Minion 上查看系统版本: ```bash salt '*' cmd.run 'uname -a' ``` ##### 4.2 配置管理 SaltStack 的状态系统(State System)用于实现配置管理。以下是一个简单的 SLS 文件示例,用于安装并启动 Apache 服务: ```yaml # /srv/salt/apache.sls apache-service: pkg.installed: - name: httpd service.running: - name: httpd - enable: True ``` 然后执行该状态文件: ```bash salt 'slaver.test.com' state.apply apache ``` ##### 4.3 高可用性与扩展 SaltStack 支持多 Master 架构,确保高可用性。此外,可以通过 Salt Cloud 实现云平台的自动化管理,支持 AWS、Azure、OpenStack 等主流云平台。 #### 5. 常见问题排查 ##### 5.1 Minion 无法连接 Master - 检查网络连通性,确保 Minion 可以访问 Master 的 4505 和 4506 端口。 - 确保 Minion 的 `/etc/salt/minion` 文件中正确配置了 `master` 地址。 - 在 Master 上运行 `salt-key -L` 查看 Minion 是否已正确注册。 ##### 5.2 状态文件执行失败 - 检查 SLS 文件语法是否正确,可以使用 `salt-lint` 工具进行检查。 - 使用 `-l debug` 参数查看详细日志: ```bash salt 'minion_id' state.apply -l debug ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值