Terraform is a well-known (and my favorite) tool to write, plan and create infrastructure as code.

NB: modules.tf generates infrastructure code and relies on Terragrunt for heavy-lifting. Terragrunt is used as a wrapper for Terraform modules, allows orchestration of dependencies, updates of arguments dynamically and keeps infrastructure configurations DRY.

https://github.com/terraform-aws-modules — these building blocks of AWS infrastructure are used by thousands of people around the globe. As a core maintainer, it was natural for me to bring them as first-class citizens to modules.tf.

Let’s try it!

Once you draw AWS infrastructure, which can be a single resource or several interconnected resources (as shown above), you should click “Export” and then “Terraform code export” in top-right corner.

Zip-archive with all configurations and extra files will be generated dynamically.

Extract content of this archive into your working directory and read README.md which is inside. It contains all information about dependencies, and how to create the desired infrastructure.

Notes

modules.tf is open-source, MIT licensed. Source code: https://github.com/antonbabenko/modules.tf-lambda modules.tf is using AWS Lambda and running Serverless framework with Python 3.6 modules.tf is free for all. It is available for all types of users on cloudcraft.co (including free users) modules.tf has support for a limited amount of AWS resources, because we don’t have Terraform AWS modules for all of them (yet). This is the first iteration of public release, and definitely contain bugs. I couldn’t imagine what kind of scenarios people were building, so PLEASE report problems on GitHub issues. I am especially interested in learning about any usability issues or problems with the developer experience. What makes you stuck? What is not logical? What is simply missing? What is useless? What would be AMAZING? modules.tf — is also a static web-site, but I have not updated it yet :)

Summary