天天看点

salt-broker: 轻量级的Salt Proxy解决方案salt-broker: 轻量级的Salt Proxy解决方案

<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