如今的雲計算已經不再是那個僅僅隻會計算、隻會存儲、隻會連接配接的機器的集合,網際網路業務的靈活化、智能化、複雜化不斷推動着雲計算變得更加自動和智能。
從DevOps到IaC,從公有雲、私有雲到多雲管理,Terraform 在基礎設施管理領域的地位已經變的越來越舉足輕重,使用者對Terraform的喜愛也在日益增強。
目前阿裡雲對 Terraform 的支援已經超過了50個resource,将近20個data source,但這遠遠無法滿足使用者複雜多樣的業務場景,給使用者一種意猶未盡的感覺。
首先,基于 terraform 建立一台 VPC 類型的 ECS,模闆如下:
由于 Terraform 暫時不支援對報警規則的建立,是以先使用 CLI 代替。
CLI指令拼接好以後,利用 <code>null_resource</code> 和 <code>local_exec</code> 來執行:
執行指令 <code>terraform apply</code>,建立ECS和報警規則:
執行結果如下:

或者,可以再次使用 <code>null_resource</code> 進行檢視:
為了更友善的管理和變更資源屬性,可以使用<code>environment</code> 來存放 CLI Command 中的參數值,如下所示:
值得注意的是,<code>environment</code> 要求 terraform version >= v0.11.4
更近一步,由于 API 的參數相對固定不變,為了提高 CLI Command 指令的可重用性,可以将 Command 存放在 Shell Script 中,如 “create_cloudmonitor.sh”,然後直接在模闆中執行 “create_cloudmonitor.sh” 即可:
本文主要講述了 Terraform 如何 CLI 來管理自身缺失的 resource。通過本文的介紹,我們可以發現,隻要阿裡雲産品提供了 Open API,都可以利用 Terraform 來實作對該資源的有效管理,避免了因 Terraform resource 提供不及時而帶來的不便。
目前,面向阿裡雲的 Terraform Provider 仍在不斷的發展和完善中,歡迎大家使用和提供寶貴的意見和建議。以下是相關參考資料,歡迎大家查閱。
備注:本文所涉及到的模闆,可通過附件下載下傳和使用。