SaltStack 是一种基于 C/S 架构的服务器基础架构集中化管理平台,管理端称为 Master,客户端称为 Minion;SaltStack 具有配置管理、远程执行、监控等功能;SaltStack 自己是基于 Python 语言开发实现,结合了轻量级的消息队列软件 ZeroMQ 与 Python 第三方模块(Pyzmq、PyCrypto、Pyjinjia二、python-msgpack 和 PyYAML 等)构建。
经过部署 SaltStack 环境,运维人员能够在成千上万台服务器上作到批量执行命令,根据不一样的业务特性进行配置集中化管理、分发文件、采集系统数据及软件包的安装与管理等。node
Grains:静态组件,minion启动时收集信息。
Pillar:动态组件,定义变量、信息,密码。
State:核心功能,经过制定好的sls文件对被控主机进行管理。python
角色 | 主机名 | 操做系统 | IP地址 |
---|---|---|---|
master | master.saltstack.com | CentOS7 | 192.168.37.128 |
minion | web01.saltstack.com | CentOS7 | 192.168.37.130 |
minion | web02.saltstack.com | CentOS7 | 192.168.37.131 |
1、三台服务器的准备工做
一、分别修改主机名web
vim /etc/hostsname #master主机 master.saltstack.com vim /etc/hostsname #minion主机 web01.saltstack.com vim /etc/hostsname web02.saltstack.com
二、修改hosts文件(三台相同)apache
192.168.37.128 master.saltstack.com
192.168.37.130 web01.saltstack.com
192.168.37.131 web02.saltstack.comvim
三、安装epel源安全
yum install -y epel-release服务器
四、重启服务后关闭防火墙及安全功能架构
init 6
systemctl stop firewalld.service
setenforce 0运维
2、master控制器上安装salt
一、安装salt包ide
yum install -y salt-master
二、修改主配置文件
vim /etc/salt/master //15行 interface: 192.168.37.128 #监听地址 //215行 auto_accept: True #避免要运行salt-key来确认证书 //416行 file_roots: base: - /srv/salt #saltstack文件根目录位置,放置管理文件 //710行 nodegroups: #定义管理组 group1: 'web01.saltstack.com' group2: 'web02.saltstack.com' //552行 pillar_opts: True #开启pillar动态数据,同步文件功能 //529行 pillar_roots: #pillar主目录 base: - /srv/pillar
三、查看配置文件中修改内容(注意:配置文件中内容原先所有注释掉,只有修改过的才会过滤出来)
cat /etc/salt/master | grep -v ^$ | grep -v ^#
四、建立配置文件中目录
mkdir /srv/salt
mkdir /srv/pillar
五、开启服salt-master务
systemctl start salt-master.service
netstat -ntap | egrep '4505|4506'
3、minion被控制端上安装salt
一、安装salt包
yum -y install salt-minion
二、修改配置文件
vim /etc/salt/minion //16行 master: 192.168.37.128 #指定主控端IP //78行 id: web01.saltstack.com #被控制端主机名,另外一台需改此处
三、开启salt-minion服务
systemctl start salt-minion.service
4、master上演示控制状态
一、测试与被控制端的通讯状态
salt '*' test.ping
二、远程执行命令
salt '*' cmd.run 'df -h'
三、查看master上接受的客户端
salt-key
四、查看被控制主机上grains全部值
salt 'web01.saltstack.com' grains.items
salt 'web01.saltstack.com' pillar.items
一、引导脚本
vim /etc/srv/salt/top.sls
base: #*--表示全部客户端执行Apache模块 '*': - apache #调用Apache文件
二、安装apache脚本
vim /srv/salt/apache.sls
apache-service: #apache-service是自定义id名 pkg.installed: #pkg.installed为安装包函数 - names: - httpd - httpd-devel service.running: - name: httpd - enable: True
三、重启服务
systemctl restart salt-master.service
四、执行安装命令
salt '*' state.highstate
五、最后,查看被控制端服务器apache安装是否成功