點擊架構師成長之路html
(安裝、配置、啓動)python
配置管理工具:數據庫
Saltstack最基本的三大功能:編程
Saltstack組件:api
Salt SSH組件:安全
在沒有Salt minion的系統上經過SSH運行Salt命令。Saltstack四種運行方式:ruby
配置兩臺設備,一臺安裝命名爲Saltstack01(172.18.20.226):安裝salt-master和salt-minion;一臺命名爲Saltack02(172.18.20.227)只安裝salt-minion。架構
Saltstack提供本身官方repo倉庫 請點擊 ,裏面存在各個系統版本安裝步驟socket
yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest.el7.noarch.rpm
建議安裝一個本地倉庫,我才用的aliyun,以下:編程語言
yum install -y salt-master salt-minion
2.1 啓動Saltstack01的salt-master
systemctl start salt-master #先啓用salt-master
Saltstack01的目錄
Saltstack02的目錄
2.2 配置Saltstack01和Saltstack02的minion配置文件, 並啓動salt-minion
cd /etc/salt vi minion # minion配置文件(多一個空格都能報錯,配置master的ip地址或域名,前提要有DNS)
默認配置master就能夠,還有一個ID選項:若是不設置Id的話,默認獲取到主機名:socket.getfqdn()。
systemctl start salt-minion
沒有設置id的時候,查看一下minion_id默認就是FQDN名,就是Saltstack02。
minion_id 值的生成過程:
minion 默認按照以下順序,試圖在找到一個不是localhost的值做爲ID:
1.1 Python函數socket.getfqdn() 獲取的值; 1.2 /etc/hostname 定義的值(僅限於非Windows系統); 1.3 /etc/hosts (%WINDIR%\system32\drivers\etc\hosts on Windows hosts) 中定義的任何映射 127.0.0.0/8 的主機名作ID值
若是以上都可以產生一個ID, 而且不是localhost,then a sorted list of IP addresses on the minion (excluding any within 127.0.0.0/8) is inspected. The first publicly-routable IP address is used, if there is one.Otherwise, the first privately-routable IP address is used.若是一切都失敗了,那麼則使用localhost做爲備用,最終獲取的ID將記錄在/etc/salt/minion_id文件中,該文件能夠手動更改,重啓服務後不會被從新覆蓋。
注意:若是minion端主配置文件 /etc/salt/minion 中啓用了 id: xxxx , 那麼這個ID值將覆蓋 /etc/salt/minion_id 中記錄的ID數值.
此時Saltstack01的目錄
此時Saltstack02的目錄(啓動minion以後就有了pki目錄,並生成兩個公鑰和私鑰文件)
2.3 Salt minion和Salt master如何通訊???
通訊以前須要認證,採用公鑰和私鑰。
2.2.1 未配置minion的時候:Saltack02的pki--minion下面沒有任何目錄
2.2.2 配置完minion的時候:Saltack02的pki--minion下面會多出兩個文件minion.pem私鑰和minion.pub公鑰。
2.2.3 Saltack02的公鑰會發給Saltack01(Master),Saltack01(Master)收到之後放置在
總結:
當初始化安裝 minion 啓動服務啓動後: 1.1 minion端生成一個祕鑰對,併產生一個ID值,minion服務會安裝ID值命名的公鑰發送給 master ,直到接受爲止; 1.2 master認證完畢後,會將minion 端發送來的,以ID值命名的公鑰存放在 /etc/salt/pki/master/minions_pre 目錄中(無ID值默認就是FQDN名); 1.3 master認證完畢後,會將自身的公鑰發送給 minion,並存儲爲 /etc/salt/pki/minion/minion_master.pub。
擴展:
master 祕鑰對默認存儲在/etc/salt/pki/master/master.pub /etc/salt/pki/master/master.pem master 端認證的公鑰存儲在:/etc/salt/pki/master/minions/ minion 祕鑰對默認存儲在/etc/salt/pki/minion/minion.pub /etc/salt/pki/minion/minion.pem minion 存放的master公鑰/etc/salt/pki/minion/minion_master.pub minion_id 默認存儲在/etc/salt/minion_id
......