之前咱们通过一篇文章入门了应用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我的项目的文件夹下执行

❯ rover2021/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 - 该局部是对图例的一些阐明

GRAPH - 这部分是整个资源关系和状态的视图,可应用鼠标进行缩放,拖拽,以及抉择某一个资源

RESOURCES - 资源文件的映射列表,事实了资源在配置文件中的定义地位,同时也能够应用鼠标进行抉择

DETAILS - 详细信息视图,当应用鼠标抉择了 GRAPH 或者 RESOURCES 视图中的资源对象时,这里将事实其具体的信息

通过与 terraform graph 生成的图形比照,Rover展现了更加丰盛和好看的视图,让咱们能以可视化的形式充沛了解我的项目所治理的资源。

留神的问题

  1. Rover还不反对应用了“remote” - Backend的我的项目,因为还没方法将执行打算保留到本地

介绍视频

HashiCrop的工程师Tu Nguyen,也就是Rover的开发者,在 Youtube 上公布了他介绍Rover的视频


同时公布在 ROVER - TERRAFORM执行打算可视化工具