Skip to content

Latest commit

 

History

History
69 lines (46 loc) · 1.72 KB

README.md

File metadata and controls

69 lines (46 loc) · 1.72 KB

Terraform tfstate Reporter

This tool generates node summary reports from a Terraform .tfstate file, such as the following:

name    ip       id    cluster  module
web     1.1.1.1  id1   A        backend
db      2.2.2.2  id2   A        backend
nagios  3.3.3.3  id3   B        tools

Reports are defined using ERB.

Usage

$ ruby main.rb <path_to_tfstate> <path_to_report_erb>

Some report samples are in the reports subdirectory. It defaults to reports/standard.erb if not specified.

Example (tab-delimited output for import into spreadsheet):

$ ruby main.rb spec/sample_data/terraform.tfstate reports/short.erb
name	ip	id	cluster	module
Luke	1.2.3.4	id1	P1	root.nodes_backend
Leia	2.3.4.5	id2	P1	root.nodes_backend
Solo	6.7.8.9	id3	P3	root.nodes_opstools
Chewie	1.1.1.1	id4	P3	root.nodes_opstools

The Markdown sample report reports/short.md.erb generates the following:

name ip id cluster module
Luke 1.2.3.4 id1 P1 root.nodes_backend
Leia 2.3.4.5 id2 P1 root.nodes_backend
Solo 6.7.8.9 id3 P3 root.nodes_opstools
Chewie 1.1.1.1 id4 P3 root.nodes_opstools

Prerequisities

  • Ruby
  • Bundler: gem install bundler

Installing

$ bundle install installs the following:

If you don't want to install Guard, use $ bundle install --without development.

Running the tests

If you've installed Guard, you can open a dedicated console window and type guard. Guard will observe selected files on disk (see the Guardfile) and automatically run the spec tests on file change.

Run tests manually from console with $ rspec.