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

[经验分享] 自动化运维工具Saltstack详细介绍

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-9-22 11:37:58 | 显示全部楼层 |阅读模式
    Saltstack是一个新的基础设施管理工具。目前处于快速发展阶段,可以看做是pssh+弱化的Puppet的组合。间接的反映出了saltstack的两大功能:远程执行和配置管理。

   Saltstack使用Python开发,是一个非常简单易用和轻量级的管理工具。由Master和Minion构成,通过ZeroMQ进行通信。

    Saltstack的master端监听4505与4506端口,4505为salt的消息发布系统,4506为salt客户端与服务端通信的端口;salt客户端程序不监听端口,客户端启动后,会主动连接master端注册,然后一直保持该TCP连接,master通过这条TCP连接对客户端控制,如果连接断开,master对客户端就无能为力了。当然,客户端若检查到断开后会定期的一直连接master端的。

1.     saltstack安装centos/redhatserver端安装
1
2
3
4
#导入EPEL YUM源
rpm -Uvh http://mirror.pnl.gov/epel/5/i386/epel-release-5-4.noarch.rpm
#服务器master的安装
yum -y install salt-master



centos/redhat客户端minion安装
1
2
3
#导入EPEL YUM源
rpm -Uvh http://mirror.pnl.gov/epel/5/i386/epel-release-5-4.noarch.rpm
yum -y install salt-minion



ubuntu/debian server端和client端安装
1
2
3
4
5
6
7
wget -q -O - "http://debian.saltstack.com/debian-salt-team-joehealy.gpg.key"| apt-key add -
echo "deb http://debian.saltstack.com/debianwheezy-saltstack main" /etc/apt/sources.list
echo "debhttp://debian.saltstack.com/debian wheezy-saltstack main" |tee/etc/apt/sources.list
apt-get update
apt-get installsalt-master      # On the salt-master
apt-get installsalt-minion      # On each salt-minion
apt-get install salt-syndic




2.     saltstacks配置文件修改master端配置文件修改
1
2
3
vi /etc/salt/master
interface: 115.28.2.1  #此处是server端监听的地址。
auto_accept: True    #此处是自动接受客户端发送过来的key,如果服务器很多的话,需要开启该功能。



启动master
1
2
/etc/salt/master -d  #后台启动
/etc/salt/master  #前台启动,方便调试



minion端配置文件修改:
1
2
3
4
5
6
7
8
9
#vi /etc/salt/minion
master: 115.28.2.1  #这里改成你的master服务器地址
id: web01   #建议这里修改成主机名,便于master端分辨

#在配置文件末尾加入下面内容,每隔5分钟自动同步master配置,效果等同于在客户端执行salt-call state.highstate或在server端执行 salt '*'state.highstate
schedule:
  highstate:
    function: state.highstate
    minutes: 5



启动minion:
1
2
3
/etc/salt/minion -d #后台启动
/etc/salt/minion  #前台启动,方便调试
注:minion启动后,自动会生成公钥私钥,并把公钥发送到master端。minion不监听端口,全靠和master保持长连接,可通过netstat -an|grep ES来查看是否有连接。



3.     salt-key证书管理master端证书存放路径:/etc/salt/pki/master/minions
1
2
3
4
5
salt-key  -L            #查询所有接收到的证书
salt-key  -a <证书名>   #接收单个证书
salt-key  -A            #接受所有证书
salt-key  -d <证书名>   #删除单个证书
salt-key  -D            #删除所有证书



4.     salt实时批量操作语法:
1
salt [选项]  ''     [arguments]



常用命令举例:
1
2
3
4
5
6
7
8
9
10
11
salt '*'  test.ping   
#*为匹配所有主机,test.ping为salt一个函数,注:*号是正则,若分了多个组,可以类似于web*,只匹配web服务器
salt '*'  cmd.run 'df -h'  
#查看所有主机的磁盘信息,cmd.run执行单个命令
salt '*'  cmd.script salt://hello.sh
salt '*'  cmd.script  salt://scripts/runme.sh 'arg1 arg2 "arg 3"'
#cmd.script执行一个脚本,即把本地脚本拷贝到远程主机上执行,hello.sh要放在指定的文件存放路径,默认是/srv/salt/
salt '*'  state.highstate
       #向客户端推送master端配置。
salt '*' cmd.run 'df -h '  -t 5   
    #超时控制





5.     salt分组管理在配置文件/etc/salt/master中加入如下内容:
1
2
3
4
5
6
[iyunv@yang salt]# vimaster.d/group.conf

nodegroups:
  group1: 'L@DG-Server-27,DG-Server-28'
  group2: 'L@qsmind'
#分组格式可在/etc/salt/master中搜索group看示例



分组执行:
1
salt -N group1 cmd.run'hostname'




6.     salt-ssh远程主机批量自动登陆salt-ssh批量密码认证登陆,参考峰云大神的博文
http://rfyiamcool.blog./1030776/1305710

7.     salt-run检查客户端up状态注:该处状态检查salt使用的是test.ping,如果服务器禁ping,则该处不准。
1
2
3
salt-run manage.status #查看所有客户端up/down状态
salt-run manage.up    #只显示up状态的客户端
salt-run manage.down  #只显示down状态的客户端



8.     salt-cp批量拷贝文件在master端执行:
1
2
3
4
5
语法:
salt-cp [options] ''SOURCE DEST

示例:
salt-cp '*'  /etc/hosts   /etc/hosts #把master上的hosts文件分发到所有主机。



9.     saltstack定时同步可以把salt-call state.highstate命令放在minion端的定时任务中,来进行自动请求同步。
也可以把salt '*' state.highstate放在master端的定时任务中,来进行自动推送到所有机器。
也可以在/etc/salt/minion配置文件中加入如下内容,如下是每隔5分钟同步,效果一样。
1
2
3
4
          schedule:
          highstate:
                 function:state.highstate
                 seconds:300




10.             saltstack自动分发目录 指定同步的目录后,以后文件只需放到该目录下就会自动同步到minion端。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[iyunv@yang salt]# cat /srv/salt/top.sls
base:
  "DG-Server*":
    - ssh_key.key
- zabbix.zabbix
#在top.sls文件中指定哪些主机访问哪些目录

[iyunv@yang salt]# cat /srv/salt/zabbix/zabbix.sls
/usr/local/zabbix/scripts:     #指定minion端同步后生成的目录
  file.recurse:
- source: salt://zabbix/zabbix_scripts    #指定要master端同步的原始目录,以后只要把想要分发的文件放在这个目录中,就会自动同步了。
- dir_mode: 755
- file_mode: 744

#用dir_mode和file_mode来设置文件和目录的权限




11.             saltstack自动分发文件如下配置,当文件出现变更时,匹配DG-Server开头的主机,同步文件到这些minion上,并设置为对应的文件权限。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[iyunv@yang salt]# cat /srv/salt/top.sls
base:
  "DG-Server*":
    - ssh_key.key
- zabbix.zabbix

[iyunv@yang zabbix]# cat /srv/salt/zabbix/zabbix.sls
/usr/local/zabbix/etc/zabbix_agentd.conf.d/UserParameter.conf:   #指定在minion端生成的文件名
file.managed:
  - source: salt://zabbix/UserParameter.conf    #指定在master同步的原始文件
  - backup: minion           #当文件发生变化时,都会把原文件备份,备份文件目录:/var/cache/salt/minion/file_backup/
  - mode: 744
  - user: root
  - group: root




12.             saltstack进程状态管理 例:如httpd的配置文件进行更改时,自动重新加载配置文件。(该图取于网上,说明见图上)
wKioL1QemaGxy1UEAAQB3FWJkRY467.jpg

13.             saltstack自定义模块当有需要使用一些statstack没有的方法时,可以自己增加模块。




saltstack常用功能也就批量执行命令或脚本,批量分发文件,自动同步目录与文件,整体来说很简单实用。但salt有一个缺点,zeromq虽性能很高,但稳定性略差,经常出现minion与master连接断开的情况,导致有些服务器会执行命令失败,这个请大家要注意。



运维网声明 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-25140-1-1.html 上篇帖子: saltstack配置应用以及基础用法 下篇帖子: CentOS 安装Saltstack
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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