使用 VMware Tools 啟用 Salt 部屬節點

Salt Project 是一個 Python 式的開放原始碼軟體,用於事件驅動的 IT 自動化、遠端工作執行以及組態管理。
  • 僅支援 64 位元作業系統。
  • 支援 Windows、Windows 8 和更新版本。
    不支援 Windows 2008R2。
  • 安裝 VMware Tools 時必須安裝 Salt 部屬節點功能。依預設,會啟用此功能。
  • 對 Linux 中已安裝的套件 (如 curl 和 wget) 存在相依性
如需有關 Salt 的詳細資訊,請參閱《Salt 使用者指南》
Salt 要求在客體中部署 Salt 部屬節點。Salt 特定的客體變數會依據每個虛擬機器設定於主機端上,以便後續供客體內的 VMware Tools 讀取。之後,VMware Tools 會下載 Salt 服務包,並在客體內啟動 Salt 部屬節點執行個體。
  • 使用客體變數的每個虛擬機器的主機端組態
    主機管理員使用 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 的標準存放庫位置的專用複本進行安裝,請使用
      • 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
  • 擷取記錄資訊
    客體管理員可以從以下路徑擷取與 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