← 返回上一頁
開源軟體

Terraform 資源圖視覺化工具總覽

本頁目錄

Terraform 資源圖視覺化工具總覽

由於 Terraform 使用的是聲明式的語言描述最終資源狀態,所以,就能 低成本 的實作資源的狀態視覺化。

以下幾種開源工具,能幫助你實現視覺化資源。


1. Terraform graph 指令

graph 是 Terraform 的子指令。透過它,你可以產生使用 DOT 格式的資源圖。命令如下:

terraform graph | dot -Tsvg > graph.svg

除了在命令列裡使用,你還可以將產生 dot 檔案整合你的 Pipeline 中,以方便 code review。

這裡介紹一個根據 dot 語言產生圖的線上網站:https://dreampuf.github.io/GraphvizOnline/

此工具依賴: tfstate 或 HCL

官方文件: https://developer.hashicorp.com/terraform/cli/commands/graph


2. Blast radius

Blast radius 根據 Terraform 產生的依賴圖產生可互動的圖,基於 Graphviz 和 Python 3.7。你可以透過搜尋或點擊你感興趣的資源,它可以突出顯示資源依賴圖。

此工具依賴: HCL

網址: https://github.com/28mm/blast-radius


3. Terraform Visual

Terraform Visual 根據 Terraform plan 檔案產生視覺化介面。

範例網址: https://hieven.github.io/examples/aws-s3

產生 JSON 格式的 plan 的方法:

$ terraform plan -out=plan.out
$ terraform show -json plan.out > plan.json

此工具依賴: Terraform plan 檔案


4. Inframap

Inframap 透過讀取 tfstate 或 HCL 檔案產生資源圖。

此工具依賴: tfstate 或 HCL

網址: https://github.com/cycloidio/inframap


5. Rover

Rover 基於 Go 和 Vue 實現,Terraform 的可視化。

此工具依賴: Terraform plan 檔案

網址: https://github.com/im2nguyen/rover


工具比較總覽

工具 輸入來源 特色
Terraform graph tfstate / HCL 基礎指令,輸出 DOT 格式
Blast radius HCL 可互動搜尋,依賴圖 highlight
Terraform Visual plan 檔案 視覺化介面,直觀呈現
Inframap tfstate / HCL 簡潔風格,多雲支援
Rover plan 檔案 Web 介面,現代化 UI

後記

如果 CMDB 只會被動從已經部署好的資源中獲取信息,才能建立出整個資源圖,那麼,可以肯定的是,它的成本是巨大的,且不準確的。

而從現成的配置中獲取信息,並建立資源圖,那麼,成本是相對低得多的,而且準確的。因為開源世��,會免費給你用和二次開發。只要這些配置是聲明式的。Terraform 的生態,就是很好的例子。

分享這篇
X LinkedIn Facebook Hacker News Reddit

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料