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

    • 移除 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
  • 使用安裝指令碼安裝 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]

        其中,./svtminion.sh [-j|--source] 指定要從中安裝 Salt 部屬節點的位置。預設位置為 repo.saltproject.io

        例如:URL 位置

        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 -hGet-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

  • 擷取記錄資訊
    客體管理員可以從以下路徑擷取與 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