至于为什么选择saltstack,因为Puppet、Chef基于Ruby开发,而ansible、saltstack基于python开发,便于后期二次,良好的可移植性。
又,ansible基于SSH协议传输数据,Saltstack使用消息队列zeroMQ传输数据,MQ通讯和SSH通讯速度相差明显,考虑到速度方面,排除ansible,最终选择Saltstack。
不过两者相比之下Ansible的安全性倒是最好,适合金融行业。
1.本次实验环境
[root@saltstack ~]# python -V
Python 2.6.6
IP | 角色 | 系统 |
192.168.1.110 | master | redhat6.5 |
192.168.1.111 | minion | redhat6.5 |
2.SALTSTACK安装
server端安装
#导入EPEL YUM源
saltstack官方yum源。
cat > /etc/yum.repos.d/saltstack.repo << EOF
[saltstack]
name=SaltStack repo for RHEL/CentOS \$releasever
baseurl=https://repo.saltstack.com/yum/redhat/\$releasever/\$basearch/latest
enabled=1
gpgcheck=1
gpgkey=https://repo.saltstack.com/yum/redhat/\$releasever/\$basearch/latest/SALTSTACK-GPG-KEY.pub
EOF
更新yum缓存执行如下命令
yum clean all && yum makecache
#服务器master的安装
yum -y install salt-master
chkconfig salt-master on
service salt-master start
minion端安装
yum -y install salt-minion
chkconfig salt-minion on
service salt-minion start
3.配置文件修改
####master端 [root@saltstack ~]# vim /etc/salt/master 15 interface: 0.0.0.0 #修改地15行 303 auto_accept: True #自动接受客户端发送过来的key,
####minion端 #vim /etc/salt/minion
master: 192.168.1.110 #你的master服务器地址
id: minion #你的主机名
分别启动服务端和客户端的salt服务
[root@saltstack ~]# /etc/init.d/salt-master start
Starting salt-master daemon: [确定]
[root@saltstack ~]# /etc/init.d/salt-minion start
Starting salt-minion daemon: [确定]
[root@saltstack ~]# netstat -an|grep 4505
tcp 0 0 0.0.0.0:4505 0.0.0.0:* LISTEN
tcp 0 0 192.168.1.110:4505 192.168.1.111:38926 ESTABLISHED
tcp 0 0 192.168.1.110:4505 192.168.1.111:38892 ESTABLISHED
[root@saltstack ~]# netstat -an|grep 4506
tcp 0 0 0.0.0.0:4506 0.0.0.0:* LISTEN
## 查看当前的salt key信息
## 测试被控主机的连通性
## 根据被控主机的grains信息进行匹配过滤
远程代码执行测试
#查看所有客户端up/down状态
[root@saltstack ~]# salt-run manage.status
down:
up:
- minion
cmd模块(实现远程的命令行调用执行)
service 服务模块(被控主机程序包服务管理)
network模块(返回被控主机网络信息)