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