如果將 SaltStack ConfigvRealize Automation 整合,則可以套用 SaltStack Config 資源以在部署中的虛擬機器上安裝部屬節點。部署部屬節點後,可以使用 SaltStack Config 強大的組態管理、偏差修復和狀態管理功能來管理資源。

部屬節點是執行 salt-minion 服務的代理程式。該服務會訂閱 Salt 主節點所發佈的工作,主節點是執行 salt-master 服務的伺服器。當某個特定工作套用至部屬節點時,該部屬節點將執行該工作。

部署 Linux 和 Windows 機器時,可以使用 SaltStack Config 資源部署部屬節點並套用狀態檔案。若要在現有部署上新增或更新部屬節點和狀態檔案,可以執行連結 SaltStack 資源第 2 天動作。如需有關第 2 天動作的詳細資訊,請參閱您可以對 Cloud Assembly 部署執行哪些動作

如果使用 saltConfiguration 內容作為第 0 天動作部署部屬節點和狀態檔案,請考慮更新雲端範本以使用 SaltStack Config 資源。saltConfiguration 內容現已棄用。您仍然可以在雲端範本中使用 saltConfiguration 內容,但 SaltStack Config 整合功能將受到限制。

套用 Salt 組態第 2 天動作仍可用於使用 saltConfiguration 內容的資源。

開始之前

  1. 確認已安裝 SaltStack Config 並設定整合。請參閱在 vRealize Automation 中建立 SaltStack Config 整合

    若要自行熟悉 SaltStack Config 的運作方式,包括部屬節點的重要概念,請參閱〈瞭解 SaltStack 使用者介面〉

  2. SaltStack Config 中,確認從部屬節點到主節點的 FQDN 名稱解析正常運作。
    1. 若要在 SaltStack Config 中驗證 Salt 主節點上的 FQDN,請選取部屬節點 > 所有部屬節點
    2. 部屬節點識別碼資料行中篩選出值 saltmaster
    3. 按一下 saltmaster 查看詳細資料。
    4. 確認 FQDN 值正確無誤。
  3. 如果要在 Linux 機器上部署部屬節點,請確認 vSphere 中要部署 Salt 部屬節點的映像已啟用 SSH 功能。SSH 用於遠端存取機器並部署部屬節點。
  4. 如果要在 Windows 機器上部署部屬節點,請參閱如何在 Windows 環境中使用 API (RaaS) 部署部屬節點

  5. 如果要在安裝了 VMware Tools 並設定了 Salt 部屬節點的虛擬機器上部署部屬節點,請確認 VMware Tools Salt 部屬節點金鑰顯示在 SaltStack Config 中的部屬節點金鑰工作區中的已接受索引標籤下。如需詳細資訊,請參閱〈使用 VMware Tools 啟用 Salt 部屬節點〉

    備註: 如果 VMware Tools Salt 部屬節點是舊版本,則針對虛擬機器部署部屬節點不會將 Salt 主節點升級到最新版本。必須手動升級 Salt 主節點。如需詳細資訊,請參閱 〈升級主節點外掛程式〉
  6. 確認您可以為部署的機器指派 IP 位址。

    SaltStack Config 需要機器具有 IP 位址。使用 Salt 主節點所在 SDDC (軟體定義資料中心) 之公用 IP CIDR 範圍的 IP 位址。

  7. 確認在新增 SaltStack Config 資源內容之前要將部屬節點新增到的雲端範本可部署。
  8. 確認您具有以下服務角色:
    1. Cloud Assembly 管理員
    2. Cloud Assembly 使用者
    3. Service Broker 管理員

    需要這些服務角色才能使用 SaltStack Config 資源。

將 SaltStack Config 資源新增到雲端範本

身為雲端範本開發人員,您可以將內容新增到 YAML,以便在部署範本時安裝 SaltStack Config 部屬節點。

新增到範本的核心內容包括要部署的機器的遠端存取內容以及 SaltStack Config 資源的組態內容。該程序僅包括選取的內容。YAML 包括此範例中未使用的其他 SaltStack Config 資源內容。如需詳細資訊,請檢閱架構。

儘管此範例顯示了如何為遠端存取內容新增使用者名稱和密碼,但您可以設定密碼內容並將其新增到範本。如需範例,請參閱密碼 Cloud Assembly 內容

程序

  1. Cloud Assembly 中,選取設計 > 雲端範本
  2. 開啟現有範本。
  3. 找到 SaltStack Config 資源並將其拖曳至畫布。
  4. SaltStack Config 資源連結到將安裝部屬節點的機器。
  5. 在代碼窗格中,將內容新增到 Cloud_SaltStack_1 資源。

    您無需包括所有可能的內容。此範例中使用的值在資料表中進行了說明。

    Cloud_SaltStack_1:
        type: Cloud.SaltStack
        properties:
          masterId: saltstack_enterprise_installer
          hosts:
            - ${resource.Cloud_vSphere_Machine_1.id}
          saltEnvironment: sse
          stateFiles:
            - /doe.sls
          variables: 
            user: joe

    在此範例中使用的 Cloud_SaltStack_1 內容的說明。

    內容 說明
    masterId 在範例架構中,masterId 值為 saltstack_enterprise_installer。您可以在 SaltStack Config管理 > 主節點金鑰中定義主節點識別碼。
    hosts hosts 值是要安裝部屬節點之機器或機器叢集的識別碼。依預設,機器的名稱作為 SaltStack Config 中的部屬節點識別碼傳入。

    建議選擇不超過 15 個字元的機器名稱,尤其是在 Windows 上部署部屬節點時。Windows 不允許主機名稱超過 15 個字元。

    如果希望為要部署的機器定義自訂命名慣例,請參閱Cloud Assembly 中已部署資源的自訂命名〉

    saltEnvironment 在此範例中,sse 是狀態檔案的檔案位置。您可以在 SaltStack Config組態 > 檔案伺服器中將狀態檔案放置在其他檔案伺服器位置。
    stateFiles 在此範例中,doe.sls 是在指定為 saltEnvironment 的檔案伺服器目錄中提供的狀態檔案。
    variables 變數是狀態檔案使用的值。在此範例中,doe.sls 接受 user 值。
  6. remoteAccess 內容新增到託管 Salt 部屬節點的機器。

    authentication 金鑰的值必須為 usernamePasswordgeneratedPublicPrivateKey。不支援 publicPrivateKey

     remoteAccess:
            authentication: usernamePassword
            username: adminUser
            password: adminPassword
  7. 確認 YAML 包含與以下範例類似的內容。
    resources:
      Cloud_vSphere_Machine_1:
        type: Cloud.vSphere.Machine
        properties:
          image: ubuntu
          flavor: small
          remoteAccess:
            authentication: usernamePassword
            username: adminUser
            password: adminPassword
      Cloud_SaltStack_1:
        type: Cloud.SaltStack
        properties:
          masterId: saltstack_enterprise_installer
          hosts:
            - ${resource.Cloud_vSphere_Machine_1.id}
          saltEnvironment: sse
          stateFiles:
            - /doe.sls
          variables: 
            user: joe
  8. 測試並部署雲端範本。
    如果部屬節點部署失敗,請參閱 對部屬節點部署進行疑難排解
  9. 確認已部署機器的 Salt 組態內容。
    1. 選取部署 > 部署,然後開啟部署詳細資料。
    2. 拓撲索引標籤上,按一下機器,然後在右窗格中展開內容。

      [拓撲] 索引標籤的螢幕擷取畫面,在右窗格中展開了 Salt 組態內容。內容包括主節點識別碼、Salt 環境和狀態檔案。

SaltStack Config 中驗證部屬節點

在虛擬機器上安裝部屬節點後,找到部屬節點並在資源上執行任何工作或命令。

程序

  1. 若要開啟 SaltStack Config,請按一下右上角的應用程式功能表,然後按一下 Cloud Services 主控台
  2. 按一下 SaltStack Config 服務動態磚。
  3. SaltStack Config 中,展開部屬節點金鑰,然後按一下已接受
  4. 部屬節點識別碼資料行中,按一下篩選器圖示,然後輸入部屬節點的名稱。
    部屬節點的名稱預設為虛擬機器的主機名稱。在此範例中,部屬節點識別碼為 vra-vm-05。
    SaltStack Config 中已接受部屬節點金鑰的螢幕擷取畫面。
  5. 若要檢視詳細資料,請按一下部屬節點的名稱。
    您可以在部屬節點上執行工作或命令。例如,範例磁碟使用量。此工作傳回部屬節點的磁碟使用量統計資料。
    範例部屬節點識別碼的詳細資料頁面的螢幕擷取畫面

對部屬節點部署進行疑難排解

瞭解使用者在使用 SaltStack Config 資源或 saltConfiguration 內容部署 Salt 部屬節點時遇到的一些常見錯誤。

主機啟動延遲

如果在部署雲端範本後主機上的 Windows 或 Linux 服務未就緒,Cloud Assembly 中可能會顯示「部屬節點部署和/或狀態檔案執行失敗」錯誤。

若要解決此錯誤,請將主節點外掛程式升級到最新穩定版本。升級後,可以在 /etc/salt/master.d/raas.conf 中啟用一項組態設定,使 Windows 和 Linux 服務有時間在部署 Salt 部屬節點之前處於作用中狀態。

升級到最新版本的主節點外掛程式後,請完成以下步驟以延遲主機啟動:

  1. 查看部署詳細資料頁面上的歷程記錄索引標籤。
  2. 如果錯誤訊息顯示「部屬節點部署和/或狀態檔案執行失敗」,請複製工作識別碼 (JID) 並開啟 SaltStack Config
  3. SaltStack Config 中,選取活動 > 已完成以開啟已完成的工作。
  4. JID 資料行中,按一下篩選器圖示並輸入 JID。
  5. 按一下 JID 以檢閱工作結果頁面。
  6. 按一下原始索引標籤以查看工作的原始輸出。

    Windows

    如果工作原始輸出中的最後一行包含「無法連線到主機: 逾時」,則必須將以下組態設定新增到 /etc/salt/master.d/raas.conf 以將啟動延遲 180 秒:
    sseapi_win_minion_deploy_delay: 180

    Linux

    如果工作原始輸出中的最後一行包含「無法使用提供的認證存取遠端主機」,則必須將以下組態設定新增到 /etc/salt/master.d/raas.conf 以將啟動延遲 90 秒:
    sseapi_linux_minion_deploy_delay: 90
  7. 重新啟動 Salt 主節點服務:
    systemctl restart salt-master
  8. 重新部署雲端範本。

    如果部署不成功,可以增加延遲參數並重新部署範本。

後續步驟

若要使用 SaltStack Config 功能管理資源,請參閱 SaltStack Config 說明文件