saltstack自动化运维工具搭建个人笔记

至于为什么选择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模块(返回被控主机网络信息)

 

 

 

 

原文地址:https://www.cnblogs.com/hsia2017/p/7469853.html