Cloud Assembly 支援與 Puppet Enterprise 組態管理整合。

將 Puppet Enterprise 做為外部系統新增至 Cloud Assembly 時,依預設它在所有專案上均可使用。您可以將其限制為僅限特定專案使用。

若要新增 Puppet Enterprise 整合,您必須具有 Puppet Master 名稱以及 Master 的主機名稱或 IP 位址。

如果需要檢查 Puppet 記錄是否有錯誤或出於資訊目的,您可以在下列位置中找到這些記錄。

說明 記錄位置
與建立及安裝相關的事件的記錄

這些記錄位於已部署機器上的 ` ~/var/tmp/vmware/provider/user_defined_script/$(ls -t ~/var/tmp/vmware/provider/user_defined_script/ | head -1)/` 中。

如需完整記錄,請參閱 log.txt 檔案。如需詳細的 Puppet 代理程式記錄,請參閱 https://puppet.com/docs/puppet/4.8/services_agent_unix.html#logging
與 Puppet 刪除及執行相關的工作的記錄 這些記錄位於 PE 上的 `~/var/tmp/vmware/provider/user_defined_script/$(ls -t ~/var/tmp/vmware/provider/user_defined_script/ | head -1)/` 中。如需完整記錄,請參閱 log.txt 檔案。

程序

  1. 選取基礎結構 > 連線 > 整合,然後按一下新增整合
  2. 選取 [Puppet]。
  3. 在 [Puppet 組態] 頁面上,輸入所需的資訊。
  4. 如果需要雲端 Proxy,請按一下新增雲端 Proxy,然後輸入所需資訊。通常,僅在使用 vSphere 時,才需要雲端 Proxy。請參閱在 Cloud Assembly 中將雲端 Proxy 新增至 vCenter Server
  5. 按一下驗證來檢查整合。
  6. 按一下新增

結果

Puppet 可與雲端範本搭配使用。

後續步驟

將 Puppet 元件新增至所需雲端範本。

  1. 在 Cloud Assembly 的 [雲端範本] 下,選取雲端範本功能表上 [內容管理] 標題下的 Puppet,然後將 Puppet 元件拖曳至畫布。
  2. 在右側的窗格上輸入 Puppet 內容。
    內容 說明
    Master 輸入要與此雲端範本搭配使用的 Puppet 主要機器的名稱。
    環境 選取 Puppet 主要機器的環境。
    角色 選取要與此雲端範本搭配使用的 Puppet 角色。
    代理程式執行間隔 希望 Puppet 代理程式輪詢 Puppet 主要機器以取得組態詳細資料的頻率,該組態詳細資料將套用至與此雲端範本相關的已部署虛擬機器。
  3. 按一下右窗格中的 [程式碼] 索引標籤,以檢視 Puppet 組態內容的 YAML 程式碼。

將 Puppet 元件新增到雲端範本時,可以將 installMaster 內容新增到 YAML 檔案,以指向 Puppet 安裝主機 (也稱為編譯主機)。此內容的值可以是 Puppet 編譯主機的 IP 位址或主機名稱。透過使用此內容,能夠存取已部署 Puppet 虛擬機器的增強型功能,同時還支援額外的第二天動作。

  Puppet_Agent:
    type: Cloud.Puppet
    properties:
      account: PEIntegrationAccount
      environment: production
      role: 'role::linux_webserver'
      host: '${CentOS-Puppet.*}'
      username: root
      password: password123!
      installMaster: my-pe-compile-master.example.com
      agentConfiguration:
        certName: '${CentOS-Puppet.address}'
      osType: linux
      count: 1

依預設,vRealize Automation Cloud 會將部分機器相關資訊作為事實傳遞至 Puppet 虛擬機器。對於 Wiindows 機器,此資訊非常有限。在 Linux 機器上,預設會傳遞更多資訊,並且使用者可以使用自訂內容傳遞其他資訊。

對於傳遞至 Linux 下 Puppet 機器的內容存在一些限制。主機資源和 Puppet 代理程式上的自訂內容會傳遞到 Puppet 虛擬機器。網路資源上的自訂內容不會傳遞到虛擬機器。傳遞的項目包括簡單內容、布林值內容以及自訂的具名類型和複雜類型,例如具有陣列的巢狀對應。

下列範例顯示如何在主機資源上呼叫各種自訂資源:

resources:
  Puppet-Host:
    type: Cloud.AWS.EC2.Instance
    properties:
      customer_specified_property_on_ec2_resource: "property"
      customer_specified_property_on_network_resource_that_should_also_be_a_fact_and_is_boolean: true
      CustomerNameStuff: "zone A"
      try_map:
      key: value
      keytwo: value
      nested_array:
        - one
        - two
        - true
      try_array:
        - one
        - two
        -three:
           inner_key: value

如果 Puppet 清除命令導致錯誤,在大多數情況下,vRealize Automation Cloud 會略過節點的清除錯誤並繼續刪除節點。即使找不到特定節點的憑證,vRealize Automation Cloud 也將繼續刪除。如果 vRealize Automation Cloud 因某些原因無法繼續刪除節點,您可以在 [部署] 頁面之 [動作] 功能表上按一下 [刪除] 以開啟對話方塊,以便您能夠繼續刪除節點。從雲端範本移除 Puppet 整合,然後將範本套用至部署時,會執行類似的工作流程。此工作流程會觸發如上所述進行處理的節點清除作業。