sdsk 发表于 2015-11-26 11:28:22

Saltstack:Multi-Master搭建

Multi MasterTutorial
  从salt 0.16.0版本开始,管理minions可以使用multi-master特性。当使用multi-master时,所有masters均可以正常运行,任何一个active-master都可以向minions发送命令。
  
  在0.16.0版本,masters之间并不会共享信息,public keys需要在每台master上accept,文件共享需要手动完成,或者使用类似git工具确保file_roots目录文件一致。
  
  建立Multi-Master的大概步骤:
1.安装新的master server
2. copy masterkeys到新的master对应目录
3.启动新的master进程
4.配置minions配置文件
5.Restart minions
6.在新的master上accept keys
Master Keys
  配置Multi-Master主要的问题是,每一个master使用相同的private key。Private key在master第一次启动时自动生成的(注意:配置Multi-Master时,一定要在启动新master前将老master的private key copy到对应目录)。
  
Master的private key在pki_dir目录下,默认的位置是:/etc/salt/pki/master/master.pem,将该key copy到新的master对应的目录下,谨记,一定是在启动新master之前copy。

Configure Minions
修改minion config文件,这样每一个minion将会认证到所有master上。Config文件默认在:/etc/salt/minion
i.e 修改minionconfig file
master:
- saltmaster1.example.com
- saltmaster2.example.com
最后,restart minion
此时,所有master都alive,并且可以控制minon

i.e 配置过程
1.安装master
Rpm装,就不说了(注意:先不要启动salt-master)
2.copyprivate keys(可以使用nc copy文件)
3.启动新的salt-master
/etc/init.d/salt-masterstart
4.配置minion端config files
http://blog.csdn.net/pengtaolei/article/details/
4.重启salt-minion
/etc/init.d/salt-minionrestart


有一个问题:master之间无法容灾!!!
如果主salt-master当机,salt-call将会失败,无法完成同步,但是其他冗余salt-master还是可以向下highstate

==测试==
1.      stop old salt-master
http://blog.csdn.net/pengtaolei/article/details/
2.      在minion上salt-call
http://blog.csdn.net/pengtaolei/article/details/
3.      在new salt-master上highstate
看以看出在new salt-master上highstate是没有问题的

http://blog.csdn.net/pengtaolei/article/details/

Sharing Files BetweenMasters
Salt并不会在每个master之间同步文件共享,下面介绍一下一些key files在master之间的同步和保持一致。

Minion Keys
Minionkeys会被每一个master接受。可以通过salt-key工具手动完成,或者同步一些关键目录。必要的同比目录是:
/etc/salt/pki/master/minions
/etc/salt/pki/master/minions_pre
/etc/salt/pki/master/minions_rejected


file_roots
file_roots 目录也应该被在master之间同步。这是用于管理配置的salt state file目录。推荐的同步方法是使用gitfs,或者将file_roots目录放在共享存储上。
pillar_roots
同file_roots一样也需要被同步。
Master Configuration
确保master相关的配置也是相互同步的。
external_auth
client_acl
peer
peer_run
Conclusion
总体上配置Multi-master还是比较简单的,可以提供多master来管理minions,确保keys和state files在master之间保持同步。
页: [1]
查看完整版本: Saltstack:Multi-Master搭建