saltstacks简介
Salt是一种全新的基础设施管理方式,部署轻松,在几分钟内可运行起来,扩展性好,很容易管
理上万台服务器,速度够快,服务器之间秒级通讯。
SaltStack是一个服务器基础架构集中化管理平台,具备配置管理、远程执行、监控等功能,一般
可以理解为简化版的puppet和加强版的func。SaltStack基于Python语言实现,结合轻量级消息
队列(ZeroMQ)与Python第三方模块(Pyzmq、PyCrypto、Pyjinjia2、python-msgpack
和PyYAML等)构建。
通过部署SaltStack环境,我们可以在成千上万台服务器上做到批量执行命令,根据不同业务特
性进行配置集中化管理、分发文件、采集服务器数据、操作系统基础及软件包管理等,SaltStack
是运维人员提高工作效率、规范业务配置与操作的利器
有三种模式
1)本地模式(local),不需要启动进程,只要配置文件就可以写出来
2)master minion 模式 发热恶-
3)代理模式(syndic)
4)ssh模式
master –> minion 模式:
master默认—->监听本地所有网络接口
长连接
发布订阅系统:4505端口
minion端只做订阅(pub推送、sub接收)
4506端口:专门用于接收minion端的返回值
base2 |
172.25.78.12 |
salt-master |
base3 |
172.25.78.13 |
salt-minion |
base4 |
172.25.78.14 |
salt-minion |
1.安装配置SaltStack
[root@base2 ~]# vim /etc/yum.repos.d/yum.repo
[rhel7.3]
name=rhel7.3
baseurl=http://172.25.78.254/rhel7.3
gpgcheck=0
[salt]
name=salt2018
baseurl=http://172.25.78.254/2018
gpgcheck=0
[root@base2 ~]# yum repolist
[root@base2 ~]# yum install -y salt-master
[root@base2 ~]# yum install -y salt-minion
[root@base2 ~]# systemctl start salt-master
[root@base2 ~]# systemctl start salt-minion
[root@base3 ~]# vim /etc/yum.repos.d/yum.repo
[rhel7.3]
name=rhel7.3
baseurl=http://172.25.78.254/rhel7.3
gpgcheck=0
[salt]
name=salt2018
baseurl=http://172.25.78.254/2018
gpgcheck=0
[root@base3 ~]# yum install -y salt-minion
[root@base3 ~]# vim /etc/salt/minion # 与master建立连接
16 master: 172.25.78.12
[root@base3 ~]# systemctl start salt-minion
[root@base4 ~]# vim /etc/yum.repos.d/yum.repo
[rhel7.3]
name=rhel7.3
baseurl=http://172.25.78.254/rhel7.3
gpgcheck=0
[salt]
name=salt2018
baseurl=http://172.25.78.254/2018
gpgcheck=0
[root@base4 ~]# yum install -y salt-minion
[root@base4 ~]# yum install -y salt-minion
[root@base4 ~]# vim /etc/salt/minion # 与master建立连接
16 master: 172.25.78.12
[root@base4 ~]# systemctl start salt-minion
2.部署apache
(1)安装启动apache
[root@base2 ~]# salt-key -L # 查看已经认证的minion主机,没有,但是有等待认证的主机
[root@base2 ~]# salt-key -A
[root@base2 ~]# salt-key -L # 查看minion主机认证成功
[root@base2 ~]# lsof -i :4505 # 查看连接的服务,m通过监控,可以看到连接,base3和base4有订阅的长连接
[root@base2 ~]# mkdir /srv/salt
[root@base2 ~]# cd /srv/salt
[root@base2 salt]# mkdir httpd
[root@base2 salt]# cd httpd/
[root@base2 httpd]# vim install.sls
install-httpd:
pkg.installed:
- pkgs:
- httpd
- php
- php-mysql
service.running:
- name: httpd
- enable: True
[root@base2 httpd]# salt base3 state.sls httpd.i