saltstack minion能够链接多Master的特性. 这种方式称为多master( multi-master )配置,能够当作master的备份机,实现master高可用的热备份html
如下就多master配置以及注意事项简单作一说明node
如下配置中多master分别为:master一、master2git
由于minion端只能存储一个master的key,因此必须确保多个master的key一致,才能完成多个master的认证ruby
1. master key共享tcp
启动master1,copy master1 的key到master2对一个的位置,并启动master2svn
/etc/salt/pki/master/master.pem、master.pubspa
此处须要注意,本人一开始只共享了master.pem,minion启动起来,两个master都完成认证时,就会死掉,再共享master.pub 就能够使用了code
2. minion 端配置 multi-masterhtm
minion配置文件中的master以下:it
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 master1 2015-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 master2 2015-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