一、什么是saltstack
SaltStack管理工具允许管理员对多个操作系统创建一个一致的管理系统。
Saltstack是基于python开发的一套C/S架构配置管理工具
二、安装saltstack
1、配置yum源
(1)、在物理机上,创建一个目录hahaha将saltstack安装包放在默认发布目录下
/var/www/html/hahaha/2018
(2)、在server1、server2、server3上配置yum源
[root@server1 ~]# vim /etc/yum.repos.d/salt.repo
[salt]
name=salt
baseurl=http://172.25.60.250/hahaha/2018/
gpgcheck=0
[root@server1 ~]# scp /etc/yum.repos.d/salt.repo [email protected]:/etc/yum.repos.d/salt.repo
[root@server1 ~]# scp /etc/yum.repos.d/salt.repo [email protected]:/etc/yum.repos.d/salt.repo
2、安装
[root@server1 yum.repos.d]# yum install -y salt-master.noarch salt-minion.noarch
[root@server2 ~]# yum install salt-minion.noarch
[root@server3 ~]# yum install salt-minion.noarch
3、配置
[root@server2 yum.repos.d]# vim /etc/salt/minion
16 master: 172.25.60.1
[root@server3 ~]# vim /etc/salt/minion
4、启动
[root@server1 ~]# systemctl restart salt-master
[root@server1 ~]# systemctl enable salt-master
[root@server2 yum.repos.d]# systemctl restart salt-minion
[root@server2 yum.repos.d]# systemctl enable salt-minion
[root@server3 ~]# systemctl start salt-minion
[root@server3 ~]# systemctl enable salt-minion
5、在master添加minion(master和minion交换公钥的过程)
[root@server1 ~]# salt-key -L
[root@server1 ~]# salt-key -A
[root@server1 ~]# salt-key -L
6、测试:
[root@server1 ~]# salt '*' test.ping
server3:
True
server2:
True
7、查看,已经建立关系
[root@server1 salt]# yum install -y lsof
[root@server1 salt]# lsof -i :4505
8、分别在master和minion端查看两者的公钥 (公钥一致)
[root@server1 ~]cd /etc/salt/pki/master/
[root@server1 master]# md5sum master.pub
4d22d0cb6dd6525279bd38af27c4448a master.pub
[root@server2 yum.repos.d]# cd /etc/salt/pki/minion/
[root@server2 minion]# ls
minion_master.pub minion.pem minion.pub
[root@server2 minion]# md5sum minion_master.pub
4d22d0cb6dd6525279bd38af27c4448a minion_master.pub
[root@server3 ~]# cd /etc/salt/pki/minion/
[root@server3 minion]# md5sum minion_master.pub
4d22d0cb6dd6525279bd38af27c4448a minion_master.pub
9、安装python-setproctitle,查看python端口情况
[root@server1 minions]# yum install python-setproctitle -y
[root@server1 minions]# systemctl restart salt-master
#########一些注意事项#########
'*':调用所有主机
调用模块:cmd.run 'df -h'
所有文件定位 都必须方在/srv/salt
httpd: #既是声明,又是软件包的名在,在同一文件中时唯一的
模块.方法
apache.install(base=/srv/salt,调用install文件)
pkg.installed: #安装服务
service.running: #启动模块
- name: httpd #服务名
- enable: True #开机自起
- reload: True #如果不加这个参数默认会restart,加了这个参数,watch 监控一个文件,文件发生改变,就会重启服务
- watch:
- file /etc/httpd/conf/http.conf
/etc/httpd/conf/http.conf:
#删除某个节点
[root@server1 ~]# salt-key -d server1
[root@server1 ~]# netstat -atnlp
4505:发布订阅
4506:接受信息