您可以將 Ansible Tower 與 Cloud Assembly 整合,以支援已部署資源的組態管理。設定整合後,您可以透過雲端範本編輯器將 Ansible Tower 虛擬元件新增至新部署或現有部署中。

Cloud Assembly 支援與 Ansible Tower 版本 3.5、3.6 和 3.7 整合。

此外,如果您使用 vSphere,也必須設定雲端 Proxy。

必要條件

  • 為非管理員使用者授與存取 Ansible Tower 的適當權限。有兩個選項可用於大多數組態。選擇最適合您組態的一個選項。
    • 在組織層級授與使用者「詳細目錄管理員」和「工作範本管理員」角色。
    • 授與使用者對特定詳細目錄的管理員權限,以及對用於佈建的所有工作範本的「執行」角色。
  • 您必須在 Ansible Tower 中設定適當的認證和範本,以便與您的部署搭配使用。範本定義了要與部署搭配使用的詳細目錄和 playbook。工作範本與 playbook 之間存在 1:1 對應。Playbook 使用類似 YAML 的語法來定義與範本相關聯的工作。對於大多數一般部署,使用機器認證進行驗證。
    1. 登入 Ansible Tower,然後導覽至 [工作範本] 區段。
    2. 選取 [新增工作範本]。
      • 選取您已建立的認證。這些是將由 Ansible Tower 管理之機器的認證。對於每個工作範本,可以有一個認證物件。
      • 在 [限制] 選取項目中,選取 [啟動時提示]。這可確保工作範本針對從 Cloud Assembly 佈建或取消佈建的節點執行。如果未選取此選項,則會在部署包含工作範本的藍圖時顯示 [未設定限制] 錯誤。
  • 您可以在 Ansible Tower 的 [工作] 索引標籤上,檢視從 Cloud Assembly 叫用的工作範本執行。

程序

  1. 選取基礎結構 > 連線 > 整合,然後按一下新增整合
  2. 按一下 [Ansible Tower]。
    隨即出現 [Ansible 組態] 頁面。
  3. 輸入主機名稱 (可以是 IP 位址),以及 Ansible Tower 執行個體的其他所需資訊。
  4. 針對適用的 Ansible Tower 執行個體,輸入以使用者介面為基礎的驗證使用者名稱密碼
  5. 如果需要雲端 Proxy,請按一下新增雲端 Proxy,然後輸入所需資訊。通常,僅在使用 vSphere 時,才需要雲端 Proxy。請參閱在 Cloud Assembly 中將雲端 Proxy 新增至 vCenter Server
  6. 按一下驗證來驗證整合。
  7. 為整合輸入適當的名稱說明
  8. 按一下新增

結果

Ansible Tower 可在雲端範本中使用。

後續步驟

將 Ansible Tower 元件新增至所需雲端範本。請務必針對整合帳戶中指定的使用者指定適用的工作範本及執行權限。

  1. 在雲端範本畫布頁面上,選取藍圖選項功能表上 [組態管理] 標題下的 Ansible,然後將 Ansible Tower 元件拖曳至畫布。
  2. 使用右側面板設定適當的 Ansible Tower 內容,例如工作範本。

將 Ansible Tower 動態磚新增到雲端範本時,vRealize Automation Cloud 會在 Ansible Tower 中為已連結的虛擬機器建立主機項目。依預設,vRealize Automation Cloud 將使用虛擬機器的資源名稱來建立主機項目,但您可以使用藍圖 YAML 中的 hostName 內容指定任何名稱。為了與機器通訊,vRealize Automation Cloud 將針對主機項目建立主機變數 ansible_host: IP Address。可以覆寫預設行為以使用 FQDN 設定通訊,方法是在 hostVariables 下指定關鍵字 ansible_host 並提供 FQDN 作為其值。下列 YAML 程式碼片段顯示如何設定主機名稱和 FQDN 通訊的範例:

Cloud_Ansible_Tower_1:
	type: Cloud Ansible Tower
	properties:
		host: name of host
		account: name of account
		hostName: resource name
		hostVariables:
			ansible_host:Host FQDN
			

在此範例中,可以透過提供 FQDN 來覆寫預設 ansible_host 值。這對於希望 Ansible Tower 使用 FQDN 連線到主機電腦的使用者來說,可能非常有用。

YAML 中 hostVariables 的預設值將為 ansible_host:IP_address,並且 IP 位址可用來與伺服器進行通訊。