arongsoft 发表于 2015-9-16 09:59:20

[SaltStack] Multi

Multi Master配置
  从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的大概步骤:

[*]安装新的master server  

[*]copy masterkeys到新的master对应目录  

[*]启动新的master进程  

[*]配置minions配置文件  

[*]Restart minions  

[*]在新的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
  e.g.
  修改minion config file
  

master:  - saltmaster1.example.com
  - saltmaster2.example.com
  

  最后, restart minion..
  此时, 所有master都alive, 并且可以控制minon.
  配置过程


[*]  安装master

Rpm装,就不说了(注意:先不要启动salt-master)  

[*]copyprivate keys(可以使用nc copy文件)  

[*]  启动新的salt-master

/etc/init.d/salt-master start  

[*]配置minion端config files  

[*]  重启salt-minion
  /etc/init.d/salt-minion restart

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

  所以需要使用DNS解析, 如果主master宕机, 立即切换DNS到其他的master.

  测试


[*]stop old salt-master  

[*]在minion上salt-call  

[*]在new salt-master上highstate
  看以看出在new salt-master上highstate是没有问题的.

Sharing Files Between Masters
  Salt并不会在每个master之间同步文件共享, 下面介绍一下一些key files在master之间的同步和保持一致.
  Minion Keys
  Minion keys会被每一个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之间保持同步.
  From reno
  2015-06-17 21:23:00
页: [1]
查看完整版本: [SaltStack] Multi