Salt Project 是一個 Python 式的開放原始碼軟體,用於事件驅動的 IT 自動化、遠端工作執行以及組態管理。
如需有關 Salt 的詳細資訊,請參閱《Salt 使用者指南》。
Salt 要求在客體中部署 Salt 部屬節點。Salt 特定的客體變數會依據每個虛擬機器設定於主機端上,以便後續供客體內的 VMware Tools 讀取。之後,VMware Tools 會下載 Salt 服務包,並在客體內啟動 Salt 部屬節點執行個體。
必要條件
- 僅支援 64 位元作業系統。
- 支援 Windows、Windows 8 和更新版本。
備註: 不支援 Windows 2008R2。
- 安裝 VMware Tools 時必須安裝 Salt 部屬節點功能。依預設,會啟用此功能。
- 對 Linux 中已安裝的套件 (如 curl 和 wget) 存在相依性
程序
- 使用客體變數的每個虛擬機器的主機端組態
主機管理員使用 VIM API 或 vSphere/VC UI 管理特定虛擬機器的主機端上的所有客體變數設定。
-
- Windows:
依預設會安裝 VMware Tools Salt 部屬節點功能,並且可在自訂安裝中修改。
若要使 VMware Tools 在特定虛擬機器上建立 Salt 部屬節點執行個體並將 Salt 部屬節點與 Salt 主節點相連接,主機管理員必須為該虛擬機器進行設定並設定客體變數。
在 vSphere 主機 UI 中,選取特定虛擬機器,按一下滑鼠右鍵並編輯設定。在 [虛擬機器選項] 索引標籤中,選取進階 > 編輯組態 > 新增/刪除參數,然後將
- guestinfo./vmware.components.salt_minion.desiredstate 設定為 present
- guestinfo./vmware.components.salt_minion.args 設定為 <VMware Tools Salt 部屬節點設定指令碼的自訂引數>
例如:
guestinfo./vmware.components.salt_minion.desiredstate → present
guestinfo./vmware.components.salt_minion.args → master=1.2.3.4
- Linux:
主機管理員必須安裝 open-vm-tools 和 open-vm-tools-salt-minion,然後按如下方式設定特定虛擬機器的客體變數:
- guestinfo./vmware.components.salt_minion.desiredstate 設定為 present
- guestinfo./vmware.components.salt_minion.args 設定為 <VMware Tools Salt 部屬節點設定指令碼的自訂引數>
例如:
guestinfo./vmware.components.salt_minion.desiredstate → present
guestinfo./vmware.components.salt_minion.args → master=1.2.3.4 id=12345
- Windows:
- 移除 Salt 部屬節點
在 Windows 或 Linux 中,如果主機管理員將客體變數 guestinfo./vmware.components.salt_minion.desiredstate 設定為 absent,則 VMware Tools 會移除客體虛擬機器中的 Salt 部屬節點執行個體。
例如:
guestinfo./vmware.components.salt_minion.desiredstate → absent
- 檢查客體內 Salt 部屬節點的最新狀態
若要在 vSphere UI 中檢查客體內 Salt 部屬節點的最新狀態,請使用以下客體變數:
guestinfo.vmware.components.salt_minion.laststatus
-
- 使用 tools.conf 的客體端組態
tools.conf 檔案包含 .ini 格式的 VMware Tools 組態。此工具會搜尋 salt_minion 區段,並使用該區段下定義的組態。此檔案儲存在以下位置:
Windows - C:\ProgramData\VMware\VMware Tools\tools.conf
Linux - /etc/vmware-tools/tools.conf
以下是 tools.conf 中定義的 salt_minion 區段的範例:
[salt_minion] master=1.2.3.4 conf_file=/etc/salt/minion id=dev_minion
備註: tools.conf 中僅提供部屬節點組態選項。無法從 tools.conf 中取得所需的指令碼動作。- 在客體變數中設定監控狀態變更的時間間隔:
VMware Tools 會定期輪詢客體變數以了解狀態變更。預設輪詢間隔為 180 秒,可以在 tools.conf 設定中設定。
[componentmgr]
poll-interval=180 (預設值:180 秒)
- 啟用和停用元件 (salt_minion):
- 客體管理員可以設定 tools.conf 設定,來啟用 salt_minion。
[componentmgr]
included=salt_minion
- 客體管理員可以設定 tools.conf 設定,來啟用所有元件。
[componentmgr]
Included=all (預設組態)
- 客體管理員可以設定 tools.conf 設定,來停用所有元件。
[componentmgr]
included=none
- 客體管理員可以設定 tools.conf 設定,來啟用 salt_minion。
- 在客體變數中設定監控狀態變更的時間間隔:
- 使用安裝指令碼安裝 Salt 部屬節點
-
- Linux 環境
在 Linux 系統上,安裝指令碼 svtminion.sh 是一個 Bash 指令碼,並具有以下必要條件:
- - systemctl
- - curl
- - sha512sum
- - vmtoolsd
- - grep
- - awk
- - sed
- - cut
- - wget
svtminion.sh --help
顯示命令行選項。用法:./svtminion.sh [-c|--clear] [-d|--depend] [-h|--help] [-i|--install] [-j|--source] [-l|--loglevel] [-m|--minionversion] [-r|--remove] [-s|--status] [-v|--version]
其中,
例如:URL 位置./svtminion.sh [-j|--source]
指定要從中安裝 Salt 部屬節點的位置。預設位置為 repo.saltproject.io。http://my_web_server.com/my_salt_onedir
https://my_web_server.com/my_salt_onedir
file:////my_path/my_salt_onedir
//my_path/my_salt_onedir
備註: 如果指定了 Salt 部屬節點的特定版本 ([-m|--minionversion]),則會將其附加到來源。預設使用最新版本。以下是安裝 tools.conf 中定義的 salt_minion 的範例:
[salt_minion] master=1.2.3.4 conf_file=/etc/salt/minion id=dev_minion source=https://my_web_server.com/my_salt_onedir
備註: 如果從 Salt 的標準存放庫位置的專用複本進行安裝,請使用source=https://repo.saltproject.io/salt/vmware-tools-onedir/
- Windows 環境
在 Windows 系統上,安裝指令碼 svtminion.ps1 是一個 PowerShell 指令碼。Windows 的唯一必要條件是 vmtoolsd.exe 二進位檔,用於查詢客體變數資料。
若要取得此指令碼的説明,請執行
svtminion.ps1 -h
或Get-Help svtminion.ps1
命令。用於在 Windows 客體上管理 Salt 部屬節點的 VMware Tools 指令碼為:.\svtminion.ps1 [-Install] [-MinionVersion <String>] [-Source <String>] [[-ConfigOptions] <String[]>] [-LogLevel <String>] [-Help] [-Version] [<CommonParameters>]
其中,
-Source <String>
是包含安裝程式的存放庫的 URL 或路徑。這將包含類似於在預設位置 https://repo.saltproject.io/salt/vmware-tools-onedir/ 中找到的目錄結構。可以處理最常見的通訊協定,如 http、https、ftp、unc、local
例如:
PS>svtminion.ps1 -Install PS>svtminion.ps1 -Install -MinionVersion 3004-1 master=192.168.10.10 id=dev_box PS>svtminion.ps1 -Install -Source https://my.domain.com/vmtools/salt
備註:若要查看範例,請輸入
get-help .\svtminion.ps1 -examples
如需詳細資訊,請輸入
get-help .\svtminion.ps1 -detailed
如需技術相關資訊,請輸入
get-help .\svtminion.ps1 -full
- Linux 環境
-
- 擷取記錄資訊
客體管理員可以從以下路徑擷取與 Salt 部屬節點相關的記錄資訊:Windows
記錄檔 位置 用於檢查 Salt 部屬節點狀態的記錄檔 C:\Windows\Temp\vmware-svtminion-status-{Timestamp}.log 在客體內安裝 Salt 部屬節點執行個體的記錄檔 C:\Windows\Temp\vmware-svtminion-install-{TimeStamp}.log 在客體內移除 Salt 部屬節點執行個體的記錄檔 C:\Windows\Temp\vmware-svtminion-remove-{TimeStamp}.log 用於在客體內安裝或移除 Salt 部屬節點執行個體後檢查執行階段資訊的記錄檔 C:\salt\var\log\minion log files Linux記錄檔 位置 用於檢查 Salt 部屬節點狀態的記錄檔 /var/log/vmware-svtminion.sh-status-{Timestamp}.log 在客體內安裝 Salt 部屬節點執行個體的記錄檔 /var/log/vmware-svtminion.sh-install-{TimeStamp}.log 在客體內移除 Salt 部屬節點執行個體的記錄檔 /var/log/vmware-svtminion.sh-remove-{TimeStamp}.log 用於在客體內安裝或移除 Salt 部屬節點執行個體後檢查執行階段資訊的記錄檔 /var/log/salt/minion