文章目录
1. 概述
最基本或典型的 Salt 拓扑由一个 master 节点控制一组 minion 节点组成。在构建 Salt 拓扑时,使用一种称为 Syndic 的中间节点类型,可以提供比仅由 master 节点和 minion 节点类型构建的拓扑具有更大的结构灵活性和可伸缩性。
Syndic 节点可以看作是一个特殊的传递 minion 节点。一个 Syndic 节点由运行在同一个系统上的一个 salt-syndic 守护进程和一个 salt-master 守护进程组成。运行在 Syndic 节点上的 salt-master 守护进程控制一组较低级的附属节点,而 salt- Syndic 守护进程连接较高级的 master 节点(有时称为主中的主节点)。
salt-syndic 守护进程在主节点和本地节点之间中继发布和事件。这使得主节点可以控制附加到运行在Syndic节点上的 salt-master 守护进程的小节点
架构图:
优势
- 可以通过syndic实现更复杂的salt架构
- 减轻master的负担
劣势
- syndic的/srv目录下的salt和pillar目录内容要与最顶层的master下的一致,所以要进行数据同步,同步方案同salt-master高可用
- 最顶层的master不知道自己有几个syndic,它只知道自己有多少个minion,并不知道这些minion是由哪些syndic来管理的
2. 部署salt-syndic
2.1 配置说明
要配置一个Salt Syndic,你需要告诉 Syndic 节点及其 master 节点关于彼此的信息。如果你的主节点位于10.10.10.1,那么你的配置将是:
syndic_master 选项告诉 Syndic 节点在哪里找到主节点,就像 Master 选项告诉一个 minion 节点在哪里找到 master 节点一样。
# /etc/salt/master
syndic_master: 10.10.0.1 # may be either an IP address or a hostname
id 选项由 salt-syndic 守护进程用于标识主节点,而 ifunset 默认为 Syndic 的主机名或IP地址,就像用于 Minion 一样。
# on the Syndic node
id: my_syndic
order_masters 选项将 master 节点配置为通过其发布发送直接连接到它的 Syndic 节点所需要的额外信息。
# /etc/salt/master
order_masters: True
注:每个Syn