單臺master管理多臺minion時,master壓力過大,存在單點問題,須要對master作高可用html
原理說明:vim
1)minion端配置多個master地址bash
2)兩臺master之間的配置文件,狀態文件,密鑰文件必須相同架構
方案設計:less
1)使用rsync+inotify或sersync實現文件的同步測試
2)使用nfs共享掛載的方式ui
1)安裝新的masterthis
yum install salt-master -y #注意:先不要啓動
2)同步舊master的配置文件,狀態文件,密鑰文件到新的master上spa
#配置文件 rsync -avz /etc/salt/master server-two:/etc/salt/ #密鑰文件 rsync -avz /etc/salt/pki/master/master.* server-two:/etc/salt/pki/master/ #master的公鑰與私鑰 #狀態文件 rsync -avz /srv server-two:/
3)修改minion配置,重啓minion設計
# vim /etc/salt/minion master: - server-one - server-two # systemctl restart salt-minion
4)啓動新master,並測試
systemctl start salt-master salt-key -A -y salt '*' test.ping
5)實時同步
rsync+inotify
或sersync
方式完成實時同步
腳本思路:
#!/usr/bin/bash Srv_Config=/srv Master_Config=/etc/salt/master Master_New=10.0.0.21 Date=$(date +%F-%T) rsync -avz --delete $Srv_Config $Master_New:/ &>/dev/null && \ rsync -avz --delete $Master_Config $Master_New:$Master_Config &>/dev/null if [ $? -eq 0 ];then echo "$Date Rsync Salt Config Is Ok!" else echo "$Date Rsync Salt Config Is Err!" fi
待續
原理說明:
1)主控master能夠控制一羣master,經過syndic將操做命令傳輸給受控master,受控master來完成對本身旗下minion的管理,並將結果傳回主控master,從而實現了主控master對全部minion的間接管理。
2)syndic節點上也須要master,,syndic鏈接主控master
文檔:https://docs.saltstack.com/en/latest/topics/topology/syndic.html
環境說明:
master | syndic | minion |
10.0.0.11 |
10.0.0.21 |
10.0.0.22,10.0.0.23 |
1)配置頂級master
[root@salt-master srv]# yum install salt-master -y [root@salt-master srv]# vim /etc/salt/master order_masters: True #打開表示master與syndic通訊 [root@salt-master srv]# systemctl restart salt-master
2)配置syndic
[root@syndic ~]# yum install salt-syndic -y [root@syndic ~]# vim /etc/salt/master # If this master will be running a salt syndic daemon, syndic_master tells # this master where to receive commands from. syndic_master: - 10.0.0.11 #配置master的ip地址 [root@syndic ~]# systemctl restart salt-master [root@syndic ~]# systemctl restart salt-syndic
3)配置minion
兩臺執行相同操做
[root@salt-minion2-c7 ~]# yum install salt-minion -y [root@salt-minion2-c7 ~]# vim /etc/salt/minion master: - 10.0.0.21 #配置syndic的地址 [root@salt-minion2-c7 ~]# systemctl restart salt-minion #若是以前已經添加過受信任的Master須要刪除對應的key,而後重啓 rm -f /etc/salt/pki/minion/minion_master.pub
4)master添加syndic key信任,syndic添加minion key信任
#master上 [root@salt-master srv]# salt-key -A -y [root@salt-master srv]# salt-key -L Accepted Keys: salt-minion1-c7 Denied Keys: Unaccepted Keys: Rejected Keys: #syndic上 [root@syndic minion]# salt-key -A -y [root@syndic minion]# salt-key -L Accepted Keys: salt-minion2-c7 salt-minion3-c7 Denied Keys: Unaccepted Keys: Rejected Keys: #master上測試 [root@salt-master ~]# salt '*' test.ping #顯示的是兩臺minion,說明master知道有多少臺minion,但不知道多少syndic salt-minion2-c7: True salt-minion3-c7: True #syndic上測試 [root@syndic minion]# salt '*' test.ping salt-minion2-c7: True salt-minion3-c7: True
說明:syndic的file_root、pillar_root
必須與高級master
一致,master知道有多少臺minion,但不知道多少syndic
Salt
脫離Master
獨立運行,這種狀態能夠稱爲無master
的salt
這種模式能夠用於登錄minion
後的一些調試任務,能夠將狀態文件配置在本地進行執行
文檔:https://docs.saltstack.com/en/latest/topics/tutorials/quickstart.html
1)配置minion爲本地執行模式
[root@salt-minion3-c7 ~]# vim /etc/salt/minion file_client: local file_roots: base: - /srv/salt/ pillar_roots: base: - /srv/pillar [root@salt-minion3-c7 ~]# systemctl restart salt-minion
2)編寫本地sls文件
[root@salt-minion3-c7 ~]# cat /srv/salt/demo.sls pkg-demo: pkg.installed: - pkgs: - screen - nmap
3)使用salt-call本地執行
[root@salt-minion3-c7 ~]# salt-call --local state.sls demo [root@salt-minion3-c7 ~]# salt-call --local cmd.run 'w' local: 13:43:23 up 4:20, 1 user, load average: 0.01, 0.02, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 10.0.0.1 09:26 3.00s 0.82s 0.02s w