saltstack minion可以连接多Master的特性. 这种方式称为多master( multi-master )配置,可以当做master的备份机,实现master高可用的热备份
以下就多master配置以及注意事项简单做一说明
以下配置中多master分别为:master1、master2
因为minion端只能存储一个master的key,所以必须确保多个master的key一致,才能完成多个master的认证
1. master key共享
启动master1,copy master1 的key到master2对一个的位置,并启动master2
/etc/salt/pki/master/master.pem、master.pub
此处需要注意,本人一开始只共享了master.pem,minion启动起来,两个master都完成认证时,就会死掉,再共享master.pub 就可以使用了
2. minion 端配置 multi-master
minion配置文件中的master如下:
master: - master1 - master2
启动minion使配置生效,注意在此之前确保minion的key没有存在任何master上,也就是说minion没有和任何master完成认证过
3.master端接收minion key,完成认证
在两个master上接收minion的key,也可以设置master自动接收key,这个根据自己的需求选择接收方式
minion以串行的方式向master发送认证请求,一般是先验证minion配置中的第一个master(master1),master1认证完成后,在向master2发送认证请求,所以在master1还没认证时在master2上找不到minion认证请求的key,先去master1上认证
以下为minion端的认证log:
2015-09-09 09:35:49,016 [salt.minion ][DEBUG ][25750] Attempting to authenticate with the Salt Master at master12015-09-09 09:35:49,016 [salt.crypt ][DEBUG ][25750] Initializing new SAuth for ('/etc/salt/pki/minion', 'minion', 'tcp://master1:4506')2015-09-09 09:37:30,056 [salt.minion ][DEBUG ][25750] Attempting to authenticate with the Salt Master at master22015-09-09 09:37:30,056 [salt.crypt ][DEBUG ][25750] Initializing new SAuth for ('/etc/salt/pki/minion', 'minion', 'tcp://master2:4506')
4.多master之间保持一致的文件及目录
保持master的配置内容一致,主要是file_roots,external_auth等的配置一致,若是配置了nodegroup 需要保持nodegroup 的文件内容及地址一致
保持master的file_roots(保存salt配置脚本文件),可以放在第三方软件库svn、git库,也可放在一个共享的ftp等
在使用的时候可以只调用master1,在master1无法连接时自动使用master2来控制minion