SaltStack由Master和Minion构成,Master 是服务端, 表示一台服务器;Minion是客户服务端,表示多台服务器。在Master上发送命令给符合条件的Minion,Minin就会执行相应的命令,Master和Minion之间是经过ZeroMQ (消息队列)进行通讯的。node
SaltStack的Master端监听4505与4506端口,4505为Master和Minion认证通讯端口,4506为Master用来发送命令或者接收Minion的命令执行返回信息。web
当客户端启动后,会主动链接Master端注册,而后一直保持该TCP链接,而Master经过这条TCP链接对客户端进行控制。若是链接断开,Master对客户端将不能进行控制。可是,当客户端检查到链接断开后,会按期向Master端请求注册链接。正则表达式
名称 | 说明 |
---|---|
pkg模块 | 包管理,包括增删更新。 |
file模块 | 管理文件操做,包括同步文件、设置文件权限和所属用户组、删除文件等操做。 |
cmd模块 | 在Minion上执行命令或者脚本。 |
user模块 | 管理系统帐号操做。 |
service模块 | 管理系统服务操做。 |
cron模块 | 管理cron服务操做。 |
角色 | 主机名 | IP地址 | 须要安装的软件 |
---|---|---|---|
master | master | 192.168.10.7 | release、salt-master |
minion | web1 | 192.168.10.8 | release、salt-minion |
minion | web2 | 192.168.10.9 | release、salt-minion |
主机名分别修改成master > web1 > web2 vim /etc/hostname master //修改主机名 vim /etc/hosts 192.168.10.6 master 192.168.10.7 web1 192.168.10.8 web2 init 6 #重启
yum install epel-release -yapache
yum install salt-master -yvim
vim /etc/salt/master interface: 192.168.10.6 //15行,改成为本机地址 auto_accept: True //215行,自动认证被控端的认证 file_roots: //416-418行,去掉注释开启 base: - /srv/salt //这个目录默认是没有的,须要建立。 pillar_roots: //529-531行, 去掉注释开启 base: - /srv/pillar //这个目录默认是没有的,须要建立。 pillar_opts: True //552行,开启pillar功能 nodegroups: //710行,组的分类 group1: 'web1' group2: 'web2'
4) 查看修改的内容安全
cat /etc/salt/master | grep -v ^$ | grep -v ^# 过滤出空行和#开头的信息
5) 建立salt目标和pillar服务器
mkdir /srv/salt mkdir /srv/pillar
6) 关闭防火墙和安全功能,开启salt-master服务并查看4505端口和4506端口是否开启ide
systemctl stop firewalld.service setenforce 0 //关闭防火墙和安全功能 systemctl start salt-master.service 开启服务 netstat -ntap | egrep '4505|4506' #egrep 支持扩正则表达式
7) 两台被控端web1,web2上安装salt-minionrest
yum install salt-minion -ycode
8) 编辑salt-minion的配置文件
vim /etc/salt/minion master: 192.168.10.6 //16行,指定控制端IP id: web1 //78行,指定本机主机名,web2则为web2
master上建立top.sls文件并写
vim /srv/salt/top.sls base: '*': //表示在全部的客户端执行apache模块 - apache #定义变量后面建立的内容是调用里面的内容 vim /srv/salt/apache.sls #建立被调用变量 apache-service: pkg.installed: - names: - httpd - httpd-devel service.running: - name: httpd - enable: True
重启salt-master服务
systemctl restart salt-master