ROVER - TERRAFORM執行計劃可視化工具

之前我們通過一篇文章入門了使用Terraform以聲明式配置文件(可版本化的代碼)來創建和管理基礎設施資源。
在使用命令terraform apply之前,我們通常使用terraform plan來查看執行計劃,輸出的執行計劃以類似“git diff”的文本方式描述。這裏我們將介紹如何以圖形可是化的方式來了解執行計劃。

Terrafrom Graph

首先Terraform CLI工具自帶了一個子命令 - graph,graph命令用於生產配置和執行計劃的圖形表示,其輸出是DOT格式,可以通過Graphviz轉化爲圖片,例如在Linux終端下

❯ terraform graph | dot -Tsvg > graph.svg

tf-graph-1

對於簡單的項目(管理的資源對象比較的情況),我們可以通過這個圖形瞭解資源對象的關係。但是如果一個項目管理了大量的資源對象,使用graph生成的圖形會顯得錯中複雜,而且圖形文件也比較龐大。

那接下我們將介紹一款開源的可視化工具。

Rover

Rover是一款開源的,可交互的Terraform配置和執行計劃可視化工具,其通過Web服務的方式,是我們可以通過瀏覽器查看生成的圖形,並進行一些交互操作。

使用Rover非常容易,可以從其Github項目的Release下載爲各平臺編譯好的二進制文件(命令)來運行,也可以通過Docker容器的方式運行。

如果使用下載的二進制文件,將下載好的二進制文件(例如 rover_v0.2.2)放到PATH路徑下,例如 /usr/local/bin/rover,接下來在Terraform項目的文件夾下執行

❯ rover
2021/11/26 16:59:34 Starting Rover...
2021/11/26 16:59:34 Initializing Terraform...
2021/11/26 16:59:35 Generating plan...
2021/11/26 16:59:37 Parsing configuration...
2021/11/26 16:59:37 Generating resource overview...
2021/11/26 16:59:37 Generating resource map...
2021/11/26 16:59:37 Generating resource graph...
2021/11/26 16:59:37 Done generating assets.
2021/11/26 16:59:37 Rover is running on 0.0.0.0:9000

運行rover命令,其將會執行以下操作

  1. 解析目錄下的配置文件,並通過Terraform plan生成執行計劃文件
  2. 解析計劃和配置文件,生成3種對象: 資源概覽(rso),資源映射圖(map),資源圖(graph)
  3. 使用上面的3中對象,將其轉換爲可交互的配置和狀態視圖,以Web服務器運行在本地的 9000 端口

我們可以通過瀏覽器訪問 http://localhost:9000/ 來查看可視化的結果。

整個頁面包含4個部分

LEGEND - 該部分是對圖例的一些說明

rover-legend

GRAPH - 這部分是整個資源關係和狀態的視圖,可使用鼠標進行縮放,拖拽,以及選擇某一個資源

rover-graph

RESOURCES - 資源文件的映射列表,現實了資源在配置文件中的定義位置,同時也可以使用鼠標進行選擇

rover-resources

DETAILS - 詳細信息視圖,當使用鼠標選擇了 GRAPH 或者 RESOURCES 視圖中的資源對象時,這裏將現實其詳細的信息

rover-detailsj

通過與 terraform graph 生成的圖形對比,Rover展示了更加豐富和美觀的視圖,讓我們能以可視化的方式充分理解項目所管理的資源。

注意的問題

  1. Rover還不支持使用了“remote” - Backend的項目,因爲還沒辦法將執行計劃保存到本地

介紹視頻

HashiCrop的工程師Tu Nguyen,也就是Rover的開發者,在 Youtube 上發佈了他介紹Rover的視頻


同時發佈在 ROVER - TERRAFORM執行計劃可視化工具

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章