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 http://ftp.linux.ncsu.edu/pub/epel/6/i386/epel-release-6-8.noarch.rpm
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 (minion的ip)
3、启动服务:
server端:
/etc/init.d/salt-master start
minion端:
/etc/init.d/salt-minion start
4、认证:
server端:
[[email protected] salt]# salt-key [list](查看有哪些minion可以认证,包括:已认证,未认证和拒绝)
Accepted Keys:
192.168.186.129
Unaccepted Keys:
Rejected Keys:
[[email protected] 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
[[email protected] 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.
注意:删除某个minion认证后,又想重新加进来,需要把服务重启下:
/etc/init.d/salt-master restart
/etc/init.d/salt-minion restart
[[email protected] salt]# salt-key -y -A (-A参数认证所有的minion)
5、测试:
server端:
[[email protected] salt]# salt "*" test.ping (测试所有minion)
192.168.186.129:
True
注意:出现True,表示正常连接
*表示所有的minion,且*一定要用引号引起来
[[email protected] 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: 大约在30行
添加:
nodegroups:
BJwebgroup: ‘192.168.186.128‘
BJdbgroup: ‘[email protected],192.168.186.129‘
注意:若有多个minion一个组,要用逗号隔开,且在前面加[email protected]
每个组都要用引号引起来
/etc/init.d/salt-master restart (重启下服务)
对分组进行测试:
server端:
[[email protected] 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 (minion的ip)
/etc/init.d/salt-minion start
server端:
salt-key
salt-key -y -a 192.168.186.xxx
salt 192.168.186.xxx test.ping