From 5bccb02f86e57bc95de03e8f46c6ce8525085cb1 Mon Sep 17 00:00:00 2001 From: bluxmit Date: Wed, 18 Aug 2021 08:13:27 +0000 Subject: [PATCH] infra-wid, more tooling --- workspaces/infra-workspace/Dockerfile | 18 +++++- workspaces/infra-workspace/docs/tooling.md | 57 +++++++++++++++++++ .../infra-workspace/supervisord-infra.conf | 4 ++ 3 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 workspaces/infra-workspace/docs/tooling.md diff --git a/workspaces/infra-workspace/Dockerfile b/workspaces/infra-workspace/Dockerfile index 0f09dd5..1191883 100644 --- a/workspaces/infra-workspace/Dockerfile +++ b/workspaces/infra-workspace/Dockerfile @@ -81,8 +81,24 @@ RUN echo "------------------------------------------------------ ara" \ && cd /tmp && curl -Lo ./terrascan.tar.gz https://github.com/accurics/terrascan/releases/download/v1.9.0/terrascan_1.9.0_Linux_x86_64.tar.gz \ && tar -xf terrascan.tar.gz terrascan && rm terrascan.tar.gz \ && install terrascan /usr/local/bin && rm terrascan \ + && echo "------------------------------------------------------ terraform-visual" \ + && cd /tmp && curl -sL https://deb.nodesource.com/setup_12.x | -E bash - \ + && apt-get update \ + && apt-get install -y nodejs \ + && apt-get install -y yarn \ + && npm install -g @terraform-visual/cli \ + && echo "------------------------------------------------------ terraform inframap" \ + && cd /tmp && curl -Lo ./terraform-inframap.tar.gz https://github.com/cycloidio/inframap/releases/download/v0.6.7/inframap-linux-amd64.tar.gz \ + && tar -xzf terraform-inframap.tar.gz && rm terraform-inframap.tar.gz \ + && chmod +x inframap-linux-amd64 \ + && mv inframap-linux-amd64 /usr/bin/inframap \ + && echo "------------------------------------------------------ terraform rover" \ + && cd /tmp && curl -Lo ./terraform-rover.zip https://github.com/im2nguyen/rover/releases/download/v0.1.6/rover_0.1.6_linux_amd64.zip \ + && unzip /tmp/terraform-rover.zip -d /tmp/rover && rm terraform-rover.zip \ + && chmod +x /tmp/rover/rover_v0.1.6 \ + && mv /tmp/rover/rover_v0.1.6 /usr/bin/rover \ + && rm -rf /tmp/rover \ && echo "------------------------------------------------------ mkdocs" \ - && echo "------------------------------------------------------ user" \ && chown -R abc /home/abc/.ara/server \ && chown -R abc /opt/theia \ diff --git a/workspaces/infra-workspace/docs/tooling.md b/workspaces/infra-workspace/docs/tooling.md new file mode 100644 index 0000000..cabd96e --- /dev/null +++ b/workspaces/infra-workspace/docs/tooling.md @@ -0,0 +1,57 @@ +## Ansible tools + + + +## Terraform tools + + +### Pre-commit hook + + +### [Blast-Radius](https://github.com/28mm/blast-radius) +Serves folder `/home/terraform` + +In order to serve another terraform folder, for example `/home/project/my-terraform` +``` +blast-radius --serve --port 8033 /home/project/my-terraform +``` + +### [Terraform Visual](https://github.com/hieven/terraform-visual) + +- Generate Terraform plan in json +``` +terraform plan -out=plan.out # Run plan and output as a file +terraform show -json plan.out > plan.json # Read plan file and output it in JSON format +``` +- Generate Terraform-visual report +``` +terraform-visual --plan plan.json +``` + +### [Terraform Graph](https://www.terraform.io/docs/cli/commands/graph.html) + +- Create report +``` +terraform graph | dot -Tsvg > graph.svg +``` + + +### [Inframap](https://github.com/cycloidio/inframap) + +- Visualize terraform state +``` +inframap generate terraform.tfstate | dot -Tpng > graph.png +``` + + +### [Rover](https://github.com/im2nguyen/rover) + +- serve terraform visualisation +``` +rover --workingDir /home/terraform +``` +NOTE: Rover serves only on port 9000 + +## Tutorials + +- [Deploy Cloud Instances with Packer and Terraform](https://www.scaleway.com/en/docs/deploy-cloud-servers-with-packer-and-terraform/) \ No newline at end of file diff --git a/workspaces/infra-workspace/supervisord-infra.conf b/workspaces/infra-workspace/supervisord-infra.conf index 9f06c2f..fc1f856 100644 --- a/workspaces/infra-workspace/supervisord-infra.conf +++ b/workspaces/infra-workspace/supervisord-infra.conf @@ -8,3 +8,7 @@ logfile_maxbytes = 1024 [program:blast-radius] directory=/home/terraform command=/bin/sh -c " blast-radius --serve --port 8030 /home/terraform " + +[program:rover] +directory=/home/terraform +command=/bin/sh -c " rover --workingDir /home/terraform " \ No newline at end of file