vRealize Automation 中將 Terraform 組態作為資源嵌入時,請注意某些限制和疑難排解。

Terraform 組態的限制

  • 驗證包含 Terraform 組態的設計時,[測試] 按鈕會檢查 Cloud Assembly 語法,但不會檢查原生 Terraform 程式碼語法。

    此外,[測試] 按鈕不會驗證與 Terraform 組態相關聯的 commit 識別碼。

  • 對於包含 Terraform 組態的雲端範本,將範本複製到其他專案需要下列因應措施。
    1. 在新專案的整合索引標籤下,複製 repositoryId 以進行整合。
    2. 開啟複製範本。在代碼編輯器中,將 repositoryId 取代為您所複製的內容。
  • 在版本控制存放庫中,不包括具有組態檔的 Terraform 狀態檔案。如果 terraform.tfstate 存在,則在部署期間會發生錯誤。

Terraform 父資源支援的第 2 天動作

對於 Terraform 父資源,您可以檢視或重新整理 Terraform 狀態檔案。如需有關狀態檔案動作的詳細資訊,請參閱您可以對 Cloud Assembly 部署執行哪些動作中的完整動作清單。

子資源支援的第 2 天動作

部署 Terraform 組態後,可能需要最多 20 分鐘的時間才可以對子資源執行第 2 天動作。

對於 Terraform 組態中的子資源,僅支援下列部分第 2 天動作。如需有關動作的詳細資料,請在您可以對 Cloud Assembly 部署執行哪些動作中的完整動作清單中進行查詢。

提供者 Terraform 資源類型 支援的第 2 天動作
AWS aws_instance 開啟電源
關閉電源
重新開機
重設
Azure azurerm_virtual_machine 開啟電源
關閉電源
重新啟動
暫停
vSphere vsphere_virtual_machine 開啟電源
關閉電源
重新開機
重設
關閉
暫停
建立快照
刪除快照
還原快照
GCP google_compute_instance 開啟電源
關閉電源
建立快照
刪除快照

對第 2 天動作可用性進行疑難排解

遺失或已停用的開箱即用 (OOTB) 第 2 天動作可能需要進行疑難排解。

問題 原因 解決方案
在 [動作] 功能表上,Terraform 資源沒有預期的 OOTB 第 2 天動作。

先前清單中所述的提供者和資源類型可能不支援此動作。

或者,由於資源探索和資源快取計時,此動作可能需要長達 20 分鐘的時間才會顯示。

檢查設計中的提供者和資源類型。

最多等待 20 分鐘,以完成資料收集。

Terraform 資源沒有預期的第 2 天動作,即使在收集資料所花費的 20 分鐘後亦然。

資源探索問題導致動作無法顯示。

在專案外的雲端區域上意外建立資源時,會出現此情況。例如,您的專案僅包括雲端帳戶和區域 us-east-1 雲端區域,但 Terraform 組態包括 us-west-1 的提供者區塊,並且您在設計時未進行變更。

另一種可能性是資料收集不起作用。

對照設計中的雲端區域檢查專案雲端區域。

移至基礎結構 > 連線 > 雲端帳戶,然後檢查雲端帳戶的資料收集狀態和上次成功收集時間。

即使資源狀態和資料收集沒有明顯的問題,第 2 天動作也會處於停用狀態 (灰色)。 眾所周知,偶爾會出現間歇性計時問題和資料收集失敗。 此問題應在 20 分鐘內自行解決。
錯誤的第 2 天動作處於停用狀態,該動作應根據資源狀態處於作用中狀態。

例如,「關閉電源」處於啟用狀態,「開啟電源」處於停用狀態,即使已使用提供者介面關閉資源的電源亦是如此。

資料收集時間可能會導致暫時不相符。如果您從外部 vRealize Automation 變更電源狀態,則需要一些時間才能正確反映變更。 最多等待 20 分鐘。

vRealize Automation 中使用自訂 Terraform 提供者

如果您 若要使用自訂 Terraform 提供者,請執行以下步驟。

在 git 版本控制存放庫中,在包含 main.tf 的 Terraform 目錄下,新增以下子目錄結構和自訂 Terraform 提供者 ZIP 檔案。

terraform.d/plugins/<HOSTNAME>/<NAMESPACE>/<TYPE>/terraform-provider-<TYPE_VERSION_TARGET>.zip

例如,如果下載了 azurerm 版本 3.12.0,則建立以下結構。

terraform.d/plugins/registry.terraform.io/hashicorp/azurerm/terraform-provider-azurerm_3.12.0_linux_amd64.zip