一、认识topmaster及syndic
1、基本原理
一个基本的salt配置方式是一个master指挥一群minion,为了不再有假设使用任何单一拓扑结构,考虑多种布局的情况下,主控master(top master)可以控制一群master,通过syndic将操作命令传输给 受控master(syndic相当于是主控master的助手),受控master来完成对自己旗下minion的管理,并将结果通过syndic传回主控master(top master), 从而实现了主控master对所有minion的间接管理。
- 搭建top master用来管理各个master,实现了master端的横向扩展,减轻了master端的负载压力:
通过建立top-master主机管理salt-master端及其salt-minion节点,同时可以进行salt-master主 机的横向扩展,从而通过一个或几个top-master管理多个salt-master及其salt-minion,实现大规模的集群管理 - syndic是一个特殊的minion,syndic类继承于minion类,syndic可以看作一个代理,只做数据传递。
数据走向
2、任务发放:
user------->top master------->syndic----->syndic-master--------->minion
(1)用户将需求交给top master 完成;topmaster将任务下放给master助手syndic;
(2)由syndic将任务交给master,master和top master 之间通过syndic通信;
(3)master拿到任务后再将任务分配给相应的minion端,top master并不知道有多少minion;
3、执行反馈:
salt-minion-------->syndic-------->top master.
minion端在执行完任务后,直接通过syndic将执行反馈返回给top master 这一过程中并不经手master
4、注意要点
Syndic上的master配置文件里得file_roots,pillar_roots与主master一致
Syndic 必须运行在master上,并且连接到另一个master(比他更高级)
Syndic有点类似于代理,本质上对与主master来说还是minion
二、topmaster与syndic服务的建立实验
本实验我只用了一个master主机,若后续想要横向拓展多个master,与此方法是一致的。
实验环境:
主机名 | ip | 服务 |
---|---|---|
server1 | 172.25.1.1 | salt-master、syndic |
server2 | 172.25.1.2 | salt-minion |
server3 | 172.25.1.3 | salt-minion |
server4 | 172.25.1.4 | topmaster |
实验:
在salt-master主机上:
步骤一:下载syndic
yum install -y salt-syndic
步骤二:修改master主配置文件/etc/salt/master,添加topmaster信息
vim /etc/salt/master
1042 syndic_master: 172.25.1.4
步骤三:重启salt-master服务并开启syndic服务
systemctl restart salt-master
systemctl start salt-syndic
在topmaster端:
步骤一:在网上下载salt-master安装包,并安装
步骤二:修改master主配置文件/etc/salt/master,开启topmaster
vim /etc/salt/master
1038 order_masters: True
步骤三:开启salt-master服务并查看服务开启的端口
systemctl start salt-master
netstat -antuple
步骤四:授权master端
salt-key -L
salt-key -A
步骤五:测试
salt '*' test.ping
top master 并不知道实际minion有多少也不知道都是谁,只知道有master授权主机,但通过多级管理得到所有minion端的反馈。可以看到server4(topmaster)是通过master来和minion端通信的。