Saltstack學習(五)-架構擴展

1、saltstack多master架構

單臺master管理多臺minion時,master壓力過大,存在單點問題,須要對master作高可用html

1.一、多master架構原理

image

原理說明:vim

1)minion端配置多個master地址bash

2)兩臺master之間的配置文件,狀態文件,密鑰文件必須相同架構

方案設計:less

1)使用rsync+inotify或sersync實現文件的同步測試

2)使用nfs共享掛載的方式ui

1.二、rsync方式

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+inotifysersync方式完成實時同步

腳本思路:

#!/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.三、NFS掛載方式

待續


2、salt syndic架構

2.一、syndic原理

image

image

原理說明:

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

2.二、syndic配置

環境說明:

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

3、salt masterless架構(無主架構)

Salt脫離Master獨立運行,這種狀態能夠稱爲無mastersalt

這種模式能夠用於登錄minion後的一些調試任務,能夠將狀態文件配置在本地進行執行

文檔:https://docs.saltstack.com/en/latest/topics/tutorials/quickstart.html

3.一、無主架構配置

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
相關文章
相關標籤/搜索