salt mulitmaster配置

1. master key共享

当初始化安装 minion 启动服务启动后

minion端生成一个秘钥对,并产生一个ID值,minion服务会安装ID值命名的公钥发送给 master ,直到接受为止;
master认证完毕后,会将minion 端发送来的,以ID值命名的公钥存放在 /etc/salt/pki/master/minions 目录中(无扩展名);
master认证完毕后,会将自身的公钥发送给 minion,并存储为 /etc/salt/pki/minion/minion_master.pub.

启动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

3. master端接收minion key,完成认证

minion以串行的方式向master发送认证请求,一般是先验证minion配置中的第一个master(master1),master1认证完成后,在向master2发送认证请求,所以在master1还没认证时在master2上找不到minion认证请求的key,先去master1上认证

4.多master之间保持一致的文件及目录

直接把master .ssh下文件复制过来,共用一个key

保持master的配置内容一致,主要是file_roots,external_auth等的配置一致,若是配置了nodegroup 需要保持nodegroup 的文件内容及地址一致

保持master的file_roots(保存salt配置脚本文件),可以放在第三方软件库svn、git库,也可放在一个共享的ftp等

在使用的时候可以只调用master1,在master1无法连接时自动使用master2来控制minion

5. minion keys可以参考使用:

方案一:自己写shell脚本,定时同步
*/5 * * * * rsync -avP --delete --timeout=30 root@192.168.xxx:/etc/salt/pki/master/minions/ /etc/salt/pki/master/minions/

方案二:修改salt-key的源代码:
    当主master有accept的时候同步给备master,在配置文件中配置备机IP,只有两边同步成功了才算成功;
    删除minion的时候只用通过salt-key -d的方式删除,或者配合rsync的方式,防止通过rm的方式删除minion。


备注:
配置multi-master主要的问题是:每一个master使用相同的private key. Private key在master第一次启动时自动生成的(注意:配置multi-master时,一定要在启动新master前将老master的private key copy到对应目录)。

注意:
minion可以自动检测失败的master,并且尝试重连到一个更快的master,将minion端的参数master_alive_interval 设置为true,即可开启该功能。
参考:


anzhihe安志合个人博客,版权所有丨 如未注明,均为原创 丨转载请注明转自:https://chegva.com/2862.html | ☆★★每天进步一点点,加油!★★☆

您可能还感兴趣的文章!

发表评论

电子邮件地址不会被公开。 必填项已用*标注