自动运维工具 -saltstack安装使用(实例演示!!!)
发表于:2025-01-28 作者:千家信息网编辑
千家信息网最后更新 2025年01月28日,saltstack概述在生产环境中,服务器往往不止一两台,一般都是成千上万台服务器。这对运维人员来说管理难度太大了,而saltstack是一个新的基础平台管理工具,可以支持管理上万台服务器规模,数秒钟
千家信息网最后更新 2025年01月28日自动运维工具 -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.sh
Saltstack操作实例-批量部署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安全错误
数据库的锁怎样保障安全
无网络安全模式怎么重装系统
湾区创见 2021网络安全大会
未来战日服登录显示服务器在维护
虎牙我的世界服务器怎么开
哪种软件开发没有年龄限制
山东枣庄网络安全电话
默认访问服务器端口
数据库中的宏查询
ssh批量服务器管理
联想服务器 KVM许可证
网络运行及服务器安全
数据库娱乐
软件开发工具演变过程
2020年服务器出租价格变化
上海互联网络科技有限公司
小程序更换服务器后无法授权
网络安全大厂slogan
中新软件网络技术有限公司
思科网络技术学院 pdf
大专学云计算和网络技术哪个好
查看数据库是否归档
安徽网络技术开发套餐
合肥网络技术哪里学
存储 服务器 定制
网络安全月考试卷
云端服务器上能装电磁仿真软件吗
无法打开默认数据库
自研数据库设备
达梦数据库新建用户失败
北京德博网络技术公司