大致说明:
1.topmaster -> (syndic master) -> minion
2。syndic从top master接受任务,将任务交给master ,master让自己相应的minion做,top master并不知道有多少minion
3.master和top master之间通过syndic通信
理论介绍
- 一个基本的salt配置方式是一个master指挥一群minion,为了不再有假设使用任何单一拓扑结构,考虑多种布局的情况下,主控master(top master)可以控制一群master,通过syndic将操作命令传输给受控master,受控master来完成对自己旗下minion的管理,并将结果传回主控master(top master),从而实现了主控master对所有minion的间接管理。
注意:
- Syndic上得master配置文件里得
file_roots
,pillar_roots
与主master一致 - Syndic 必须运行在master上,并且连接到另一个master(比他更高级)
- syndic有点类似于代理,本质上对与主master来说还是minion
数据走向
- 主master-------syndic-----syndic-master---------minion
- salt-minion--------syndic--------主master
实验环境
主机名(IP) | 服务 |
---|---|
server1(172.25.11.1) | syndic+master |
server2(172.25.11.2) | minion |
server3(172.25.11.3) | minion |
server4(172.25.11.4) | top master |
server1(master+syndic)
- 首先查看server2和server3此时的状态。
[root@server1 2019]# salt '*' test.ping
- 修改配置文件
/etc/salt/master
,注释之前有关mysql的行,重启服务。
[root@server1 2019]# vim /etc/salt/master #注释之前有关mysql的行
[root@server1 2019]# systemctl restart salt-master 重启服务
- 安装与topmaster通信的
salt-syndic
。
[root@server1 2019]# yum install salt-syndic-2019.2.0-1.el7.noarch.rpm -y
- 修改配置文件,加入topmaster的ip,并启动
salt-syndic
服务。
[root@server1 2019]# vim /etc/salt/master #加入topmaster的ip
1042 syndic_master: 172.25.11.4
[root@server1 2019]# systemctl restart salt-master
[root@server1 2019]# systemctl start salt-syndic #开启服务
server4
- 安装salt-master,并修改配置文件,开启服务并查看监听端口。
[root@server1 2019]# scp /etc/yum.repos.d/salt.repo server4:/etc/yum.repos.d/
[root@server4 ~]# yum install salt-master -y #安装master
[root@server4 ~]# vim /etc/salt/master #修改 开启服务
1038 order_masters: True
[root@server4 ~]# systemctl start salt-master
[root@server4 ~]# netstat -antlp #查看端口4505 4506有没有开启
- 在server4上添加key。
[root@server4 ~]# salt-key -L #查看 加入全部
[root@server4 ~]# salt-key -A
[root@server4 ~]# salt-key -L
测试
- 可以看到server4(topmaster)是通过master来和minion端通信的。
[root@server4 ~]# salt '*' test.ping #可以看到两个minion server2 和server3
补充:[root@server1 ~]# grep -v ^# /etc/salt/master | uniq #反向过滤出不已#开头的行