概覽
Terraform Explorer 是阿里雲基於 Terraform 開源版提供的一款線上調試 Terraform 設定檔的工具,旨在簡化開發人員編寫 Terraform 設定檔和操作 Terraform 的流程,協助開發人員降低使用 Terraform 的門檻。藉助 Terraform Explorer 開發人員可以以表單填寫的方式實現 Terraform 設定檔的自動產生和轉換,並通過簡單的按鈕操作來實現 Terraform 的線上運行。
功能特性
Terraform 設定檔
Terraform 設定檔用於以代碼化的方式定義基礎設施資源。編寫 Terraform 設定檔是IaC 工作流程的第一步,在設定檔定義所需的阿里雲資源(例如:ECS執行個體、RDS資料庫執行個體)、資源間的依賴關係等之後,Terraform 將自動根據檔案內容完成所定義資源的建立和配置,實現自動化部署及營運。Terraform Explorer 即支援設定檔的自動產生,也支援開發人員線上編輯設定檔範本。
功能集 | 功能點 | 功能描述 |
編寫設定檔 | 自動組建組態檔案 | 開發人員選擇雲產品以及相關的資源類型後,點擊“發起調試”按鈕,Terraform Explorer 將會自動產生一個所選資源類型的設定檔,此時您可以通過左側的表單填寫部分或者全部參數來不斷完善設定檔。 |
線上編輯設定檔 | Terraform Explorer 為每個資源類型增加了一個或者多個樣本模板,如果您不想填寫太多的參數或者想要建立多個資源時,可以在選擇資源類型之後,選擇具體某個樣本模板,點擊“發起調試”按鈕,即可看到模板詳情並發起調試。 如果樣本模板的內容無法滿足您的需求,可以點擊開啟模板右上方的“編輯模式”,在現有的模板中線上增加或者修改內容,儲存後繼續發起調試。 |
Terraform 線上執行
初始化、預覽和執行是設定檔編寫完成後 Terraform 的工作流程節點,Terraform Explorer 以調試任務為載體,通過對任務的執行來實現 Terraform 工作流程節點。每一次調試任務的執行都會依次完成初始化、預覽和執行三個動作。
功能集 | 功能點 | 功能描述 |
執行設定檔 | 線上初始化 | 初始化動作是預覽和執行的第一步,因此在 Terraform Explorer 中作為預覽和執行的一部分進行運行。 |
線上預覽 | 點擊“預覽”按鈕,Terraform Explorer 將建立一個新的調試任務或者在已有的調試任務中依次執行 | |
線上執行 | 當執行計畫符合您的預期後,您可以點擊“執行”按鈕來運行執行計畫。Terraform Explorer 將根據您的選擇執行 當點擊“預覽並執行”按鈕時,意味著產生執行計畫後將跳過人工確認而自動執行,即 Terraform Explorer 將依次執行 | |
資源銷毀 | 當您調試完成想要銷毀資源時,點擊“銷毀資源”按鈕,Terraform Explorer 將通過 |
產品優勢
Terraform Explorer 支援對 Terraform 開源版的主要功能的線上管理,具備環境免安裝、代碼免編寫、狀態免管理等優勢。
環境免安裝
Terraform Explorer 支援了對 Terraform 用戶端的線上託管,並且在執行 Terraform 命令時支援對阿里雲 Provider 的加速下載,您無需再關心 Terraform 的安裝、配置以及 Provider 下載慢等環境問題
代碼免編寫
Terraform Explorer 針對單資源提供了通過表單自動產生模板設定檔的能力,您無需再擔心 Terraform 代碼不會寫、編寫麻煩等問題;同時,為每個資源類型配備了相關的樣本模板,可以通過選擇模板來實現一鍵運行。
除此之外,Terraform Explorer 預設會幫您儲存每一次的 Terraform 的執行使用到的模板和參數,當您發起新的調試任務時,可以選擇從歷史模板和參數中載入內容。
狀態免管理
狀態管理是 Terraform 重要組成部分,分為本地狀態(local)和遠端狀態(remote)兩種。Terraform Explorer 同樣支援對這兩種狀態的管理,預設採用本地狀態管理,但是會幫您託管每一次 Terraform 的運行狀態,以確保同一份設定檔的反覆多次運行,在保證狀態安全的前提下,保留了 Terraform 原生的狀態管理機制。
基本概念
概念 | 說明 |
版本 | 阿里雲 Terraform Provider 的版本,目前支援的最低版本是 1.202.0 |
產品 | 每個 Provider 版本所支援的雲產品列表,支援按關鍵字模糊搜尋 |
資源類型 | 每個 Provider 版本中選定的雲產品所支援的資源類型,支援按關鍵字模糊搜素 |
模板 | Terraform 設定檔,是一個 HCL 格式的文字檔,使用UTF-8編碼。您可以通過填寫表單參數自動產生或者引用某個資源類型下的樣本模板。 |
模板版本 | 每次調試任務執行的時候,都會將使用到的模板儲存在一個模板版本,您可以查看不同的模板版本詳情。 |
任務 | 每當通過“發起調試”按鈕發起一次新的調試動作時,Terraform Explorer 將會建立一個新的調試任務。每個任務對應唯一的一個狀態檔案,因此同一時間只能執行一次預覽或者執行操作。 |
調試記錄 | 每個任務每次的運行(預覽或者預覽並執行)都會產生一次調試記錄,新的調試記錄都是在上一次調試記錄的基礎上產生執行計畫並執行。 |
調試歷史 | 每個資源類型的所有調試任務都會被記錄在調試歷史中,您可以選擇歷史任務並在最新的調試記錄的基礎上繼續調試。 |
存取控制
在訪問 Terraform Explorer 時,部分功能需要先完成授權,比如建立調試任務、預覽、預覽並執行、銷毀資源、查看調試歷史、查看資源詳情等。Terraform Explorer 所使用到的需要鑒權的 API 和功能如下表所示:
API 名稱 | API 描述 | 涉及功能點(按鈕) |
CreateExplorerModule | 儲存模板內容 | 預覽,預覽並執行 |
GetExplorerModule | 擷取模板內容詳情 | 查看模板 |
CreateExplorerModuleVersion | 每次繼續調試模板內容都將被儲存為一個新的版本 | 預覽,預覽並執行,繼續調試 |
CreateExplorerTask | 建立調試任務 | 預覽,預覽並執行 |
GetExplorerTask | 擷取調試任務詳情 | 調試結果 |
UpdateExplorerTaskAttribute | 更新調試任務 | 銷毀資源 |
CreateJob | 建立作業,運行調試任務 | 預覽,預覽並執行,銷毀資源 |
GetJob | 擷取調試任務運行詳情 | 調試結果 |
OperateJob | 操作作業,預覽完成後執行調試任務 | 預覽並執行,執行,銷毀資源 |
ListJobs | 擷取作業列表,即調試任務的執行記錄 | 調試記錄 |
CreateExplorerHistory | 記錄每一次的調試任務 | 調試歷史 |
ListExplorerHistory | 擷取調試歷史詳情和歷史參數 | 調試歷史,使用歷史參數 |
ListResources | 擷取建立成功的資源清單和詳情 | 資源詳情 |
在使用 Terraform Explorer 前,您可以通過如上的 API 實現精微調權限控制,也可以通過如下的權限原則完成快速授權:
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iacservice:CreateExplorerModuleVersion",
"iacservice:GetExplorerModule",
"iacservice:CreateExplorerModule"
],
"Resource": "acs:iacservice:*:*:explorermodule/*"
},
{
"Effect": "Allow",
"Action": [
"iacservice:CreateExplorerTask",
"iacservice:UpdateExplorerTaskAttribute",
"iacservice:GetExplorerTask"
],
"Resource": "acs:iacservice:*:*:explorertask/*"
},
{
"Effect": "Allow",
"Action": [
"iacservice:CreateJob",
"iacservice:GetJob",
"iacservice:listJobs",
"iacservice:OperateJob"
],
"Resource": "acs:iacservice:*:*:task/*/job/*"
},
{
"Effect": "Allow",
"Action": [
"iacservice:ListResources",
"iacservice:ListExplorerHistories",
"iacservice:CreateExplorerHistory"
],
"Resource": "*"
}
]
}