自动运维工具 -saltstack安装使用(实例演示!!!)
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,saltstack概述在生产环境中,服务器往往不止一两台,一般都是成千上万台服务器。这对运维人员来说管理难度太大了,而saltstack是一个新的基础平台管理工具,可以支持管理上万台服务器规模,数秒钟
千家信息网最后更新 2025年12月02日自动运维工具 -saltstack安装使用(实例演示!!!)
saltstack概述
在生产环境中,服务器往往不止一两台,一般都是成千上万台服务器。这对运维人员来说管理难度太大了,而saltstack是一个新的基础平台管理工具,可以支持管理上万台服务器规模,数秒钟即可完成数据传递,是现在用的比较多的自动化运维工具之一。Salt是一个基础平台管理工具。SaltStack采用 C/S模式,server端就是salt的master,client端就是minion,minion与master之间通过ZeroMQ消息队列通信。master监听4505和4506端口,4505为master和minion认证通信端口,4506为master用来发送命令或者接收minion的命令执行返回信息。saltstack介绍
1、基于python语言开发的
2、轻量级管理工具,批量执行命令
3、常用模板
| 名称 | 含义 |
|---|---|
| pkg | 包,有增删更新 |
| file | 用于管理文件,包括同步文件、设置文件权限和所属用户组、删除文件等操作 |
| cmd | 在minion上执行命令或者脚本 |
| use | 管理系统账户操作 |
| service | 管理系统服务操作 |
| cron | 管理crontab任务 |
4、saltstack数据系统
Grains(静态数据)
- pillar(动态数据)
saltstack三大功能
远程执行
配置管理
- 云管理

saltstack工作原理
SaltStack客户端(Minion)在启动时,会自动生成一套密钥,包含私钥和公钥。之后将公钥发送给服务器端,服务器端验证并接受公钥,以此来建立可靠且加密的通信连接。同时通过消息队列ZeroMQ在客户端与服务端之间建立消息发布连接。Minion是SaltStack需要管理的客户端安装组件,会主动去连接 Master端,并从Master端得到资源状态信息,同步资源管理信息。
Master作为控制中心运行在主机服务器上,负责Salt命令运行和资源状态的管理,Master上执行某条指令通过队列下发到各个Minions去执行,并返回结果。
- ZeroMQ是一款开源的消息队列软件,用于在Minion端与Master端建立系统通信桥梁。
saltstack优缺点
- 优点
速度快,基于消息队列+线程,跑完多台设备,都是毫秒级别的;非常灵活,源码是python,方便理解和自定义模块(因为python相对于其他的perl、ruby等还是很好理解的)命令简单,功能强大。- 缺点
部署minion端较为不便。Saltstack重要组件
- grains
grains是在minion(客户端)启动时收集到的一些信息,比如操作系统类型、网卡ip等静态信息。grains 的信息并不是动态的,并不会时时变更,它只是在 minion 启动时收集到的。- pillar
pillar和grains不一样,是在master上定义的,并且是针对minion定义的一些信息。像一些比较重要的数据(密码)可以存在pillar里,还可以定义变量等。- state
state是saltstack的最核心的功能,通过预先指定好的sls文件对 被控主机进行管理(包括:包、网络配置、系统服务、系统用户等)Saltstack常用命令
- 拷贝文件到客户端
salt 'client2' cp.get_file salt:#apache.sls /tmp/cp.txt- 拷贝目录到客户端
salt 'client2' cp.get_dir salt:#test /tmp- 显示存活的客户端
salt-run manage.up- 命令下执行服务端的脚本
#编辑脚本vim /srv/salt/test/shell.sh#! /bin/shecho "salt server do run shell script on client" > /tmp/shell.txt#执行脚本salt 'client2' cmd.script salt:#test/shell.shSaltstack操作实例-批量部署apache
- 环境部署
准备三台机器,这三台机器都关闭selinux,清空防火墙规则。| 服务器角色 | IP地址 | 主机名称 |
|---|---|---|
| master | 192.168.142.123 | master.saltstack.com |
| minion01 | 192.168.142.124 | web01.saltstack.com |
| minion02 | 192.168.142.166 | web02.saltstack.com |
- 安装 saltstack
#分别为三台机器添加epel源,本地有官方源yum install -y epel-release #安装epel源#服务器安装yum -y install salt-master- 配置 master主机
#安装完成修改主配置文件vim /etc/salt/master#修改如下内容#15行 interface: 192.168.175.132 #监听地址#215行 auto_accept: True #避免要运行salt-key来确认证书认证#416行 file_roots: base: - /srv/salt #saltstack文件根目录位置,目录需要创建#710行组分类nodegroups: group1: 'web01.saltstack.com' group2: 'web02.saltstack.com'#552行 pillar_opts: True #开启pillar功能,同步文件功能#529行 pillar_roots: base: - /srv/pillar #pillar的主目录,需要创建cat /etc/salt/master | grep -v ^$ | grep -v ^# #查看对主配置文件做的更改- 启动服务器
#开启服务systemctl start salt-master#设定服务开机自启systemctl enable salt-master#查看服务端口监听状态netstat -anpt | egrep '4505|4506'- 创建salt与pillar文件根目录
mkdir /srv/saltmkdir /srv/pillar- 被管理端(minion)安装
#在两台服务器上分别安装yum -y install salt-minion- 配置minino端
#修改/etc/salt/minino主配置文件vim /etc/salt/minion#修改配置如下#16行 master: 192.168.175.132 #指定主控端IP#78行 id: web01.saltstack.com #指定被控端主机名启动被控端服务systemctl start salt-minion- 在主控端测试与被控端的通信状态
#查看通信状态salt '*' test.ping#查看所有被管理端的挂载状态salt '*' cmd.run 'df -h'#查看在 master 上已经被接受过的客户端salt-key#查看被控主机上grains所有值(每次minion在启动是都会获取客户端信息)#静态数据salt 'web01.saltstack.com' grains.items#动态数据salt 'web01.saltstack.com' pillar.items- 配置管理安装Apache,下面进行的演示是远程通过yum方式安装Apache,步骤如下:
#修改主配置文件vim /etc/salt/master file_roots: base: - /srv/salt/#注意:环境:base、dev(开发环境)、test(测试环境)、prod(生产环境)。#创建工作目录mkdir /srv/saltvim /srv/salt/top.slsbase: '*': - apache#注意:'*',则表示在所有的客户端执行apache模块。vim /srv/salt/apache.slsapache-service: pkg.installed: - names: # 如果只有一个服务,那么就可以写成-name: httpd不用再换一行 - httpd - httpd-devel service.running: - name: httpd - enable: True#注意:apache-service是自定义的id名。pkg.installed为包安装函数,下面是要安装的包的名字。service.running也是一个函数,来保证指定的服务启动,enable表示开机启动。#重启服务systemctl restart salt-master#执行刷新state配置命令salt '*' state.highstate - 在两台minino端验证httpd服务是否安装成功
#查看服务端口监听状态netstst -ntap | grep 80#查看生成的配置文件rpm -qc httpd谢谢阅读!
服务
管理
文件
配置
客户
客户端
服务器
命令
信息
数据
状态
系统
主机
环境
通信
功能
消息
队列
工具
目录
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
虚拟奖品数据库发放设计
软件开发定额标准表格
我的世界tnt跑酷服务器
卡桑数据库
云服务器运行环境
软件开发 著作权合同
vs怎么显示数据库
不懂c语言考网络技术
数据库传递数据中的协议有哪些
电脑激活会影响数据库吗
谁担任了网络安全协调会
网络安全硬件怎么挑选
加强网络安全 推教育信息
hpDL360G7服务器不显示
宜丰软件开发
h3c服务器接入交换机
计算机和网络技术论文
邮件服务器破解版
服务器管理器无法打开
菏泽员工诚信积分管理软件开发
电子商务网络技术相关文档
电脑网络技术学院
db2数据库截取时间
福州呈天网络技术有限公司
程式服务器 防火安全手抄报
淮安浪潮服务器厂商
聪汇深圳互联网科技有限公司
如何用hql修改数据库
大力发展管理会计的软件开发
网络安全保障工作的通知