介绍几个Tarraform资源图可视化工具

ae1f45ac59f1dd1ac7fe2a20e3d5aeab.jpeg

由于Terraform使用的是声明式的语言描述最终资源状态,所以,就能低成本的实现资源的状态可视化。

以下几种开源工具,能帮助你实现可视化资源。

Terraform graph命令

graph是Terraform的一个子命令。通过它,你可以生成使用DOT格式的资源图。命令如下:

terraform graph | dot -Tsvg > graph.svg

除了在命令行里使用,你还可以将生成dot文件集成你的Pipeline中,以方便code review。

这里介绍一个根据dot语言生成图的在线网站: https://dreampuf.github.io/GraphvizOnline/ 效果如下图: 

e16b13307d17f925b01b86ce396a873d.png

此工具依赖:tfstate或者HCL。

地址:https://developer.hashicorp.com/terraform/cli/commands/graph

Blast radius

Blast radius 根据Terraform生成的依赖图生成可交互的图,基于Graphviz和Python3.7。你可以通过搜索或者点击你感兴趣的资源,它可以突出显示资源依赖图。效果如下:

e70216da00bf490b25e5b95d1a3625fe.png

此工具依赖:HCL。

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

Terraform Visual

Terraform Visual 根据Terraform plan文件生成可视化界面。

c1c7e5828cb1527e254d18f94d5c217d.png

样例地址:https://hieven.github.io/examples/aws-s3

生成json格式的plan的方法:

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

此工具依赖:Terraform plan文件。

Inframap

Inframap通过读取tfstate或者HCL文件生成资源图。如下图:

a45af7965b212e3725fb40d67d268124.png

此工具依赖:tfstate或者HCL。

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

Rover

Rover基于go和Vue实现,Terraform的可视化。如下图。

ea9b267f546a8a830970d9898a418fe2.png

此工具依赖:Terraform plan文件。

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

后记

如果CMDB只会被动从已经部署好的资源中获取信息,才能构建出整个资源图,那么,可以肯定的是,它的成本是巨大的,且不准确的。

而从现成的配置中获取信息,并构建资源图,那么,成本是相对低很多的,而且准确的。因为开源世界,会免费给你用和二次开发。只要这些配置是声明式的。Terraform的生态,就是很好的例子。

如果想深入了解声明式,可以看我之前写的:DevOps平台两种实现模式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值