jasper的技术小窝

关注DevOps、运维监控、Python、Golang、开源、大数据、web开发、互联网

记一次salt master的迁移

作者:jasper | 分类:saltstack | 标签:       | 阅读 1314 次 | 发布:2015-01-23 12:44 p.m.

一般在非不得已的情况下,我们都不会去干迁移salt master这种事的,因为这代价还是蛮大的,但之前还真坑爹的做了一回这事儿,在这儿记录下来,供大家参考。

其实现在已经有了salt ssh这种东西,它解决了salt中是先有鸡还是先有蛋的问题,运用在maste迁移上想必是极好的,但是我salt ssh还没有用起来,什么时候有空尝试一下,好,废话不说,言归正传。

我一开始是这么做迁移的:

  1. 搭建好新的salt master的环境,并启动;
  2. 批量修改minion端的配置文件,将master指向新的master,在老的master上运行: salt cmd.run ” sed -i ‘s/master: old_master/master: new_master/g’ /etc/salt/minion” 多好,只要minion端不重启,那还是和老的master保持长连接的。
  3. 我们还得把老的master上的相关文件拷过来了,比如pillar什么的,我就直接把下面两个文件夹copy了: /srv/salt/ /srv/pillar/ 注:可能大家的地址不一样啦,看你们在配置文件中配的地址吧。
  4. 批量重启minion: salt cmd.run "sudo /etc/init.d/salt-minion restart"

哈哈,转移阵地到新的master上去爽一把吧。
salt-key -A,把小弟拉过来,囧了,发现拉不过来。

才发现,在之中迁移的过程中有个很重要的操作没有执行,导致我们新的master无法正常连接到minion。

因为salt建立连接是要通过证书认证的,默认的配置是master端自动接收minion的证书,minion端存放的master相关的证书位置为: /etc/salt/pki/minion/minion_master.pub

在该证书存在的情况下,更改master,也不会重新生成,进而导致证书不正确无法与master通信。 因此,在minion重启之前,需要先把/etc/salt/pki/minion/minion_master.pub删除掉。

好在我当时只有三十多台机器,我登上每一台机器上去执行:
“sudo rm -rf /etc/salt/pki/minion/minion_master.pub"
"sudo /etc/init.d/salt-minion restart"

其实也挺快的,我几分钟就刷完了。

最后给出正确的做法:

  1. 搭建好新的salt master的环境,并启动;
  2. 批量修改minion端的配置文件,将master指向新的master,在老的master上运行: salt cmd.run ” sed -i ‘s/master: old_master/master: new_master/g’ /etc/salt/minion”
  3. 老的master上的相关文件拷过来;
  4. 删除minion上的认证证书: salt cmd.run "sudo rm -rf /etc/salt/pki/minion/minion_master.pub"
  5. 批量重启minion: salt cmd.run "sudo /etc/init.d/salt-minion restart"
  6. 把minion accept到新的master中: salt-key -A


转载请注明出处:http://www.opscoder.info/move_salt_master.html

相关文章
别人正在读
其他分类: