Terraform Explorer 介紹
概覽
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": "*"
}
]
}