之前咱们通过一篇文章入门了应用 Terrafrom 以申明式配置文件(可版本化的代码)来创立和治理基础设施资源。
在应用命令 terraform apply
之前,咱们通常应用 terraform plan
来查看执行打算,输入的执行打算以相似“git diff”的文本形式形容。这里咱们将介绍如何以图形可是化的形式来理解执行打算。
Terrafrom Graph
首先 Terraform CLI 工具自带了一个子命令 – graph,graph 命令用于生产配置和执行打算的图形示意,其输入是 DOT 格局,能够通过 Graphviz 转化为图片,例如在 Linux 终端下
❯ terraform graph | dot -Tsvg > graph.svg
对于简略的我的项目(治理的资源对象比拟的状况),咱们能够通过这个图形理解资源对象的关系。然而如果一个项目管理了大量的资源对象,应用 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 命令,其将会执行以下操作
- 解析目录下的配置文件,并通过 Terraform plan 生成执行打算文件
- 解析打算和配置文件,生成 3 种对象:资源概览(rso),资源映射图(map),资源图(graph)
- 应用下面的 3 中对象,将其转换为可交互的配置和状态视图,以 Web 服务器运行在本地的 9000 端口
咱们能够通过浏览器拜访 http://localhost:9000/ 来查看可视化的后果。
整个页面蕴含 4 个局部
LEGEND – 该局部是对图例的一些阐明
GRAPH – 这部分是整个资源关系和状态的视图,可应用鼠标进行缩放,拖拽,以及抉择某一个资源
RESOURCES – 资源文件的映射列表,事实了资源在配置文件中的定义地位,同时也能够应用鼠标进行抉择
DETAILS – 详细信息视图,当应用鼠标抉择了 GRAPH 或者 RESOURCES 视图中的资源对象时,这里将事实其具体的信息
通过与 terraform graph
生成的图形比照,Rover 展现了更加丰盛和好看的视图,让咱们能以可视化的形式充沛了解我的项目所治理的资源。
留神的问题
- Rover 还不反对应用了“remote”– Backend 的我的项目,因为还没方法将执行打算保留到本地
介绍视频
HashiCrop 的工程师 Tu Nguyen,也就是 Rover 的开发者,在 Youtube 上公布了他介绍 Rover 的视频
同时公布在 ROVER – TERRAFORM 执行打算可视化工具