<a href="http://zguide.zeromq.org/page:all#Chapter-Sockets-and-Patterns" target="_blank">0MQ - The Guide: Sockets and Patterns</a>
<a href="http://ju.outofmemory.cn/entry/97125" target="_blank">Salt中ZeroMQ那点事</a>
<a href="http://ju.outofmemory.cn/entry/97126" target="_blank">Salt中Syndic那点事</a>
CentOS6.4
由于本文为原理解析, 所以采用的代码为最初版的代码, 只描述了其功能逻辑
salt-broker是轻量级的Salt proxy解决方案, 只做数据转发, 不做额外的处理. 其工作原理如下:
在Master/Minions结构中, 命令分发采用ZeroMQ PUB/SUB模式, 如下图:
salt-broker中的PUB Broker在中间增加了Forwarder Proxy层, 使架构变成如下:
对应代码如下:
本地建立PUB接口, 并连接Master的SUB接口, 订阅来自于Master的消息, 接收到后立马发送到本地的PUB接口. 由于Minions上指定的Master地址为salt-broker所在的地址, 所以Minions能够接受到该消息.
在Master/Minions结构中, 认证,文件服务,结果收集等采用ZeroMQ ROUTER/REQ模式, 如下图:
salt-broker中的Ret Broker在原来的REQ/ROUTER之间再增加了一层ROUTER/DEALER Proxy层. 对应的代码如下:
本地建立ROUTER接口, 接收来自于Minions的REQ请求; 同时本地建立DEALER接口, 连接Master的Router接口, 将接收到的数据发送给远端的Master ROUTER接口.
salt-broker与syndic一样, 都支持多层级架构. salt-broker相对于syndic, 更为轻量级, 只做数据转发. 在超大规模场景下, salt-broker并不能有效的降低master的压力, 而syndic能够降低.
syndic本地会维护auth及文件服务系统, 而broker会将所有请求转发给Master, 即所有的Minions的最终管理都是在Master上. 由于所有管理权均在Master上, salt-broker能够解决掉之前Syndic在网络不稳定时的不可控问题.
安装salt(需提前配置EPEL)
安装salt-broker
配置salt-broker
/etc/salt/broker
启动salt-broker
启动完毕后, 需要将minions配置文件中的master配置为salt-broker所在的主机, 同时重启minions服务
在Master接收minions的key(如果之前已accept, 无需操作本步骤)
关于Syndic主机上的syndic及master服务
启动完毕后, 需要将原syndic下的minions配置文件中的master配置为salt-broker所在的主机, 并将/etc/salt/pki/minion/minion_master.pub删掉, 然后重启minion服务
默认配置中, 使用的是pub(4505)及ret(4506)端口, 如果master端口并非该端口, 需要在/etc/salt/broker配置文件中增加:
更改后并重启salt-broker服务.
本文转自 msj0905 51CTO博客,原文链接:http://blog.51cto.com/sky66/1686150