saltstack的安装

简述:

在之前应公司要求配置了zabbix监控所有的服务器,在管理zabbix,有时候需要监控agent机的某些性能时,默认的zabbix没有相应的模板去实现,因此需要自己去写相应的脚本去监控,这样的话就需要在每台agent机上都写一遍脚本,由于公司的服务器数量比较多,感觉这样一台一台的添加会很慢,而且很耗时,就研究使用saltstack实现自动化运维

环境:

角色 ip 系统 所属组
salt server 192.168.186.130 centos6.4
salt minion 192.168.186.129 centos6.4 Bjwebgroup
salt minion 192.168.186.128 centos6.4 Bjwebgroup/Bjdbgroup

安装参考:

阅读salt官网和其他一些相关文档,参考官网和其他一些大神的文档,实现了salt的安装

安装步骤:

1、安装软件:

推荐使用rpm包安装

安装前需要安装epel源:(server端和minion端都安装)

   cd /usr/local/src/

   wget 

   rpm -ivh  epel-release-6-8.noarch.rpm

server端:

   yum -y install salt-master

minion端:

   yum -y install salt-minion

2、文件配置:

server端:

   vi /etc/salt/master

   将#interface: 0.0.0.0注释去掉,并修改为:interface: 192.168.186.130   (server监听的ip)

   

minion端:

   vi /etc/salt/minion

   将#master: server注释去掉,并修改为:master: 192.168.186.130         (指向server)

   将#id: 注释去掉,并修改为:id: 192.168.186.129                       (id:minion的一个标识,这个值是唯一的,任意的,master就是通过这个id来管理minion)

 

3、启动服务:

server端:

    /etc/init.d/salt-master start

[root@dbm130 ~]# netstat  -tlnap | grep 450tcp        0      0 192.168.186.133:4505        0.0.0.0:*                   LISTEN      1808/python2.6      tcp        0      0 192.168.186.133:4506        0.0.0.0:*                   LISTEN      1817/python2.6 ##salt master监听两个端口:##4505:salt消息发布系统##4506:salt master与minion通信的端口

minion端:

    /etc/init.d/salt-minion start

4、认证:

server端:

   [root@scj salt]# salt-key [list](查看有哪些minion可以认证,包括:已认证,未认证和拒绝)

   Accepted Keys:

   192.168.186.129

   Unaccepted Keys:

   Rejected Keys:

  

   [root@scj salt]# salt-key -y -a 192.168.186.129      (认证192.168.186.129 )

   The following keys are going to be accepted:

   Unaccepted Keys:

   192.168.186.129

   Key for minion 192.168.186.129 accepted.

   注意:-a:添加认证

         -y:不需要交互式,若不加-y参数会提示你y/n

   [root@scj salt]# salt-key -y -d 192.168.186.129      (删除某个minion的认证)

   Deleting the following keys:

   Accepted Keys:

   192.168.186.129

   Key for minion 192.168.186.129 deleted.

   [root@scj salt]# salt-key -y -A                    (-A参数认证所有的minion)

5、测试:

server端:

   [root@scj salt]# salt "*" test.ping                (测试所有minion)

   192.168.186.129:

      True

   注意:出现True,表示正常连接

         *表示所有的minion,且*一定要用引号引起来

   [root@scj salt]# salt 192.168.186.129 test.ping     (只测试129)

   192.168.186.129:

       True

到此salt的安装就搞定了,是不是非常简单!!!

分组:

若minion的数量比较多,我们可以对minion进行分组,相同功能的minion分为一个组,然后在server端对某个组进行管理

server端:

    vi /etc/salt/master

    找到#nodegroups:

    添加:

    nodegroups:

      BJwebgroup: '192.168.186.128'

      BJdbgroup: 'L@192.168.186.128,192.168.186.129'

    注意:若有多个minion一个组,要用逗号隔开,且在前面加L@

          每个组都要用引号引起来

    /etc/init.d/salt-master restart                      (重启下服务)

对分组进行测试:

server端:

   [root@scj httpd]# salt -N BJwebgroup test.ping        (只对BJwebgroup这一个组进行管理)

   192.168.186.128:

       True

   注意:对组进行操作,要用-N参数

   

附加:

以后添加一台新minion机的步骤:

这里仅供我自己参考,方便以后使用,读者可以略过

新机器:(minion)

   cd /usr/local/src/

   wget http://ftp.linux.ncsu.edu/pub/epel/6/i386/epel-release-6-8.noarch.rpm

   rpm -ivh  epel-release-6-8.noarch.rpm

   yum -y install salt-minion

   vi /etc/salt/minion

   将#master: server注释去掉,并修改为:master: 192.168.186.xxx         (指向server)

   将#id: 注释去掉,并修改为:id: 192.168.186.xxx                       

   将#loop_interval: 60注释去掉,并修改为:loop_interval: 3153600000    (minion主动向master进行数据同步的时间间隔,这里设置时间间隔为100年,即永远不要自动同步)

   /etc/init.d/salt-minion start

server端:

    salt-key

    salt-key -y -a 192.168.186.xxx

    salt 192.168.186.xxx test.ping