天天看點

入門Salt - 基本安裝和設定

原文位址: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-minion

,因為該系統是Salt Master。

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,并确定如何将它們應用于您的設定。