打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
linux运维、架构之路
一、SaltStack介绍
SaltStack是一个服务器基础架构集中化管理平台,SaltStack基于Python语言实现,也是基于C/S架构,结合轻量级消息队列(ZeroMQ)与Python第三方模块(Pyzmq、PyCrypto、Pyjinjia2、python-msgpack和PyYAML等)构建,SaltStack整合了Puppet和Chef的功能,更适合大规模批量管理服务器,配置简单。
三大主要功能:远程执行、配置管理、云管理
运行方式:local、Master/Minion、Salt SSH
二、SaltStack工作原理
salt-master服务启动后会开启两个端口:4505和4506,minion没有端口,通过“双向密钥交换”(可通过tree /etc/salt/pki命令查看)来实现安全管理。salt-master每执行一条命令,所有minion均可收到。
[root@m01 haproxy]# lsof -n -i:4505COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEsalt-mini 28094 root 24u IPv4 513347 0t0 TCP 172.16.1.61:46598->172.16.1.61:4505 (ESTABLISHED)salt-mast 28823 root 12u IPv4 507802 0t0 TCP *:4505 (LISTEN)salt-mast 28823 root 14u IPv4 513324 0t0 TCP 172.16.1.61:4505->172.16.1.7:44184 (ESTABLISHED)salt-mast 28823 root 15u IPv4 513348 0t0 TCP 172.16.1.61:4505->172.16.1.61:46598 (ESTABLISHED)salt-mast 28823 root 16u IPv4 889130 0t0 TCP 172.16.1.61:4505->172.16.1.3:49070 (ESTABLISHED)[root@m01 haproxy]# lsof -n -i:4506 #所有的minion都与master通信,而回复的时候,master则使用4506端口COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEsalt-mini 28094 root 13u IPv4 513218 0t0 TCP 172.16.1.61:56702->172.16.1.61:4506 (ESTABLISHED)salt-mast 28848 root 20u IPv4 507835 0t0 TCP *:4506 (LISTEN)salt-mast 28848 root 27u IPv4 513219 0t0 TCP 172.16.1.61:4506->172.16.1.61:56702 (ESTABLISHED)salt-mast 28848 root 28u IPv4 513220 0t0 TCP 172.16.1.61:4506->172.16.1.7:46876 (ESTABLISHED)salt-mast 28848 root 29u IPv4 889121 0t0 TCP 172.16.1.61:4506->172.16.1.3:38832 (ESTABLISHED)
三、SaltStack安装部署
1、环境
1
2
3
4
[root@m01 ~]# cat /etc/redhat-release
CentOS release 6.9 (Final)
[root@m01 ~]# uname -r
2.6.32-696.el6.x86_64
2、master服务端安装
http://mirrors.zju.edu.cn/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm#安装epel源
yum install salt-master salt-minion -ysed -i 's/#master: salt/master: 172.16.1.61/g' /etc/salt/minion#修改minion配置文件指定master/etc/init.d/salt-master start/etc/init.d/salt-minion startchkconfig salt-master onchkconfig salt-minion on
3、minion客户端安装配置
yum install salt-minion -ysed -i 's/#master: salt/master: 172.16.1.61/g' /etc/salt/minion#直接替换指定master地址/etc/init.d/salt-minion startchkconfig salt-minion on
4、SaltStack常用命令参数
常用命令参数
命令说明
salt-key -L
查看minion列表
salt-key -A
同意接管所有的minion
salt-key -a
同意接管指定的一个minion
salt-key -D
删除所有认证的minion
salt-key -d
删除指定的minion
salt-run manage.up
查看存活的minion
salt-run manage.down
查看死掉的minion
salt-run manage.status
查看minion的相关状态
salt-run manage.versions
查看salt的所有master和minion的版本信息
salt -d
查看帮助文档
salt '*' sys.doc
查看帮助文档
salt -d|grep service
查看service相关模块命令
salt '*' service.get_all
获取minion所有服务
salt '*' service.reload sshd
重新加载sshd服务
salt '*' pkg.list_pkgs
显示软件包版本列表
salt '*' pkg.version python
显示软件包版本信息
salt '*' pkg.install httpd
安装软件包
salt '*' service.status mysql
查看mysql服务状态
salt '*' service.start mysql
启动mysql服务
salt '*' sys.list_modules
模块列表
salt-cp'*'/etc/hosts /etc/hosts
分发hosts文件到所有minion端
salt'*'file.copy/tmp/zabbix.sls /tmp/sls
把服务端对应文件拷贝到minion端相应目录下
salt '*' cp.get_dir salt://zabbix /tmp
把服务端对应目录拷贝到minion端相应目录下
5、远程执行
①cmd.script远程执行脚本
salt '*' cmd.script salt://scripts/runme.shsalt '*' cmd.script salt://scripts/runme.sh 'arg1 arg2 "arg 3"'
②cmd.shell远程执行命令
salt '*' cmd.shell "ls -l | awk '/foo/{print \$2}'"salt '*' cmd.shell template=jinja "ls -l /tmp/{{grains.id}} | awk '/foo/{print \$2}'"
③测试到客户端的连通性
[root@m01 ~]# salt '*' test.pingm01: Truehaproxy01: Trueweb02: True
④遇到的问题
#问题
salt-minion dead but pid file exists#解决rm -fr /etc/salt/pki/minion/minion_master.pub/etc/init.d/salt-minion restart
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Saltstack_使用指南09_远程执行-编写执行模块
SaltStack--远程执行
自动化运维工具SaltStack详细部署
CentOS 8.2上安装部署SaltStack Master和 Minion
企业基于开源自动化运维工具的运维实践
通过 SaltStack 管理服务器配置
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服