设为首页 收藏本站
查看: 783|回复: 0

[经验分享] linux运维、架构之路-SaltStack快速入门

[复制链接]

尚未签到

发表于 2017-11-18 21:36:20 | 显示全部楼层 |阅读模式
  一、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均可收到。



[iyunv@m01 haproxy]# lsof -n -i:4505
COMMAND     PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
salt-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)
[iyunv@m01 haproxy]# lsof -n -i:4506 #所有的minion都与master通信,而回复的时候,master则使用4506端口
COMMAND     PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
salt-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、环境



[iyunv@m01 ~]# cat /etc/redhat-release
CentOS release 6.9 (Final)
[iyunv@m01 ~]# uname -r
2.6.32-696.el6.x86_64

  2、master服务端安装



rpm -ivh http://mirrors.zju.edu.cn/epel/6/x86_64/epel-release-6-8.noarch.rpm#安装epel源
yum install salt-master salt-minion -y
sed -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 start
chkconfig salt-master on
chkconfig salt-minion on
  3、minion客户端安装配置



yum install salt-minion -y
sed -i 's/#master: salt/master: 172.16.1.61/g' /etc/salt/minion#直接替换指定master地址
/etc/init.d/salt-minion start
chkconfig 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.sh
salt '*' 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}'"

  ③测试到客户端的连通性



[iyunv@m01 ~]# salt '*' test.ping
m01:
True
haproxy01:
True
web02:
True
  ④遇到的问题



#问题
salt-minion dead but pid file exists
#解决
rm -fr /etc/salt/pki/minion/minion_master.pub
/etc/init.d/salt-minion restart

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-408364-1-1.html 上篇帖子: linux 配置sendmail支持php mail 函数 下篇帖子: linux环境手动编译安装Nginx实践过程 附异常解决
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表