原文位址:https://www.linode.com/docs/applications/configuration-management/getting-started-with-salt-basic-installation-and-setup/
使用Linode更新于2018.03.23周五
貢獻于GitHub
報告問題 | 檢視檔案 | 編輯檔案
Salt是一個基于Python的配置管理平台,旨在從單個主伺服器控制許多從伺服器(用Salt的術語叫Minions)。本指南将指導您配置Salt Master和Minion,并支援任何linux發行版。
準備工作
- 您将需要至少兩個Linode:一個将作為Salt Master服務端,另一個将作為Salt Minions用戶端。
- 設定每個Linode的主機名。主機名将用于辨別以命名來明确Salt中的每個Linode(例如master,minion1,minion2等)。
- 如果您的Linode都設定在同一資料中心,我們建議您為每個系統都配置專用IP位址。
使用Salt Bootstrap安裝
Salt Bootstrap是一個配置腳本,它可以自動檢測正在運作的作業系統,然後設定正确的存儲庫并安裝Salt。安裝腳本旨在能在Salt master和所有minion機器上運作。
Salt Master
curl -L https://bootstrap.saltstack.com -o install_salt.sh
sudo sh install_salt.sh -P -M -N
複制
注意 : 該的标志表示不能安裝
-N
,因為該系統是Salt Master。
salt-minion
Salt Minions
curl -L https://bootstrap.saltstack.com -o install_salt.sh
sudo sh install_salt.sh -P
複制
協調網絡尋址
Salt Master
1.在檔案頂部附近取消注釋
#interface:
的行,并将位址占位符替換為Salt master的Linode的位址。如果您的Linode都設定在同一資料中心,您可以使用Linode的專用IP位址。
/etc/salt/master
# The address of the interface to bind to:
interface: 203.0.113.0
複制
2.重新開機Salt:
sudo systemctl restart salt-master
Salt Minions
注意 : 必須對每個 Salt minion 執行此步驟。
在頂部
/etc/salt/minion
附近取消注釋
#master: salt
,并替換
salt
為Salt master的IP位址:
/etc/salt/minion
1 2 3 | # Set the location of the salt master server. If the master server cannot be # resolved, then the minion will fail to start. master: 203.0.113.0 |
---|
給Salt Master認證Minions
擷取Salt Master Key指紋
列出Salt master的密鑰指紋清單,以及與其關的所有Minions的指紋:
sudo salt-key --finger-all
複制
您會看到在Unaccepted Keys下列出的minion主機名或IP位址,以及每個密鑰的SHA256指紋。這裡指紋被
...
截斷以避免混亂。
Local Keys:
master.pem: e9:6a:86:bf...
master.pub: 4b:2a:81:79...
Accepted Keys:
Unaccepted Keys:
minion1: c7:b2:55:83:46...
minion2: f8:41:ce:73:f8...
複制
配置Salt Minions
1.在單引号之間,添加Salt Master的master.pub指紋到/etc/salt/minion:
/ etc /salt/minion
# Fingerprint of the master public key to validate the identity of your Salt master
# before the initial key exchange. The master fingerprint can be found by running
# "salt-key -f master.pub" on the Salt master.
master_finger: '4b:2a:81:79...'
複制
2.重新開機Salt:
sudo systemctl restart salt-minion
複制
3.列出Minion的指紋散列,并使用上面步驟1中Salt Master報告的内容進行驗證:
sudo salt-call key.finger --local
接收Minions
1.一旦驗證了每個Minion ID,從Salt Master來的請全部接收:
sudo salt-key -A
複制
注意:要接收單個的minion,請按主機名或IP位址來指定它:
sudo salt-key -a hostname
複制
2.驗證接收的minions的狀态,下面的這個指令該要傳回已驗證并正在運作的每個Minion的主機名或IP位址。
sudo salt-run manage.up
複制
有關Salt鍵的更多資訊,請參閱salt-key手冊頁。
測試Master-Minion的連接配接
Ping掉所有的Minions:
sudo salt '*' test.ping
複制
輸出應顯示每個Minion都是
true
:
root@saltmaster:~# salt '*' test.ping
minion1:
True
minion2:
True
複制
概述包管理
使用pkg狀态子產品在Minions中安裝或删除軟體包。隻要你運作的是由SaltStack支援的Linux發行版,SaltStack控制發行版的包管理器,
apt
,
yum
等。可以通過指定Minion的主機名或IP位址,或通過向所有Minions使用
*
來對獨立的Minions指定相應的包。
使用Salt minion的系統存儲庫中相同的包名稱安裝包。比如,
apache
是Debian和Ubuntu中的Apache httpd伺服器包,
httpd
而是基于RHEL的系統中的包的名稱。如果您的Salt Minions是Debian或Ubuntu的版本,您可以使用以下示例安裝或删除Apache。
将Apache安裝到所有的Minions:
sudo salt '*' pkg.install apache2
複制
從
minion5
中删除Apache:
sudo salt 'minion5' pkg.remove apache2
複制
列出安裝在
minion1
的所有包:
sudo salt 'minion1' pkg.list_pkgs
複制
使用服務子產品控制服務。
在所有Minions上重新開機Apache:
sudo salt '*' service.start apache2
複制
在
minion1
上檢視
mariadb
服務的狀态:
sudo salt 'minion1' service.status mariadb
複制
接下來的步驟
Salt是一個複雜的生态系統,必須通過學習和實踐才能徹底掌握。該Salt文檔有很多可能幫助到你的例子、教程和參考頁面。
接下來,您應首先熟悉執行子產品和Salt States,并确定如何将它們應用于您的設定。