1. 主机规划
salt 版本
1 [root@salt100 ~]# salt --version 2 salt 2018.3.3 (Oxygen) 3 [root@salt100 ~]# salt-minion --version 4 salt-minion 2018.3.3 (Oxygen)
salt syndic文档
https://docs.saltstack.com/en/latest/topics/topology/syndic.html
salt-syndic文档
https://docs.saltstack.com/en/latest/ref/cli/salt-syndic.html
2. salt-syndic案例架构
说明:
Syndic 节点可以看作是一个特殊的直通minion节点。Syndic 节点由salt-syndic和salt-master组成。其中salt-master用于控制更低级的minion节点,salt-syndic用于连接更高级的master节点(有时也称为master的master)。
重点:
Syndic的file_roots和pillar_roots必须与高级master保持一致
缺点:
高级Master并不知道自己到底有多少个minion。
3. 结构图下部分实现
3.1. 部署salt-master
在salt02、salt03部署salt-master
yum install -y salt-master
说明:salt100和salt01之前已经部署了salt-master
3.2. 其他配置与部署
具体实现可参见:《Saltstack_使用指南01_部署》和《Saltstack_使用指南15_多master》
按照步骤走即可实现
4. Syndic实现步骤
4.1. 部署salt-syndic
在salt01、salt02、salt03部署salt-syndic
yum install -y salt-syndic
4.2. syndic配置修改
在salt01、salt02、salt03上修改
1 [root@salt01 ~]# vim /etc/salt/master 2 ………… 3 # If this master will be running a salt syndic daemon, syndic_master tells 4 # this master where to receive commands from. 5 #syndic_master: masterofmasters 6 syndic_master: salt100 # salt100 是master of master 7 …………
在salt100上修改
1 [root@salt100 ~]# vim /etc/salt/master 2 ……………… 3 # Set the order_masters setting to True if this master will command lower 4 # masters' syndic interfaces. 5 #order_masters: False 6 order_masters: True # 修改处 7 ………………
注意:
每个Syndic必须提供自己的file_roots目录。文件不会自动从Master node传输。
4.3. 启动salt-syndic并加入开机自启动
1 systemctl start salt-syndic.service 2 systemctl enable salt-syndic.service
4.4. master of master接受syndic
1 [root@salt100 ~]# salt-key -A 2 The following keys are going to be accepted: 3 Unaccepted Keys: 4 salt01 5 salt02 6 salt03 7 Proceed? [n/Y] y 8 Key for minion salt01 accepted. 9 Key for minion salt02 accepted. 10 Key for minion salt03 accepted.
4.5. syndic秘钥认证位置
1 [root@salt01 minion]# pwd 2 /etc/salt/pki/minion 3 [root@salt01 minion]# ll 4 total 16 5 -rw-r--r-- 1 root root 450 Dec 3 21:54 minion_master.pub 6 -r-------- 1 root root 1674 Nov 25 23:12 minion.pem 7 -rw-r--r-- 1 root root 450 Nov 25 23:12 minion.pub 8 -rw-r--r-- 1 root root 450 Feb 11 15:46 syndic_master.pub # syndic 秘钥认证位置
4.6. 测试验证
1 [root@salt100 ~]# salt '*' test.ping 2 salt02: 3 True 4 salt03: 5 True 6 salt01: 7 True 8 salt100: 9 True
5. syndic操作示例
1 salt '*' pillar.items 2 salt '*' pillar.item level1:level2:my_user:0 3 salt '*' grains.item roles
———————————————END———————————————