Setting up your machine
The Gruntwork IaC library requires that you have a few tools installed in order to leverage our pre-built modules and services. We recommend installing these tools locally so you can develop and deploy modules and services on your local machine.
Terraform is an open source infrastructure provisioning tool that allows you to define and manage a wide variety of infrastructure (e.g., servers, load balancers, databases, network settings, and so on) as code across a wide variety of providers (e.g., AWS, GCP, Azure). Terraform defines cloud and on-premise resources in human-readable configuration language and offers a consistent workflow for provisioning and managing infrastructure.
Gruntwork’s IaC library is built using Terraform, so having Terraform installed is required.
Terraform is supported on Mac (x86 and Apple Silicon), Windows, and Linux. To learn how to install for your specific OS, follow the guide to install Terraform on the Hashicorp website.
If you need multiple versions of Terraform installed, tfenv is a tool for managing and using multiple versions of Terraform. It was inspired by similar tools
rbenv for Ruby versions and
pyenv for Python.
If you want to skip immediately to learning, you can learn how to deploy your first module. For a more in-depth guide, check out our Comprehensive Guide to Terraform for a thorough introduction to the language.
Terragrunt is a tool developed by Gruntwork that provides extra tools for keeping your Terraform configurations DRY, working with multiple Terraform modules, and managing remote state. Terragrunt allows you to execute multiple Terraform commands at once, centrally manage your Terraform state configuration, and set repeatable CLI arguments. Since Terraform is a dependency of Terragrunt, you can continue to write modules for Terraform in the Terraform configuration language, then reference and re-use the modules in different environments or applications.
Terragrunt is not a required tool to use the IaC library, but it does provide many convenience features on top of Terraform. If you are using the Gruntwork Reference Architecture, Terragrunt is a requirement.
Terragrunt is supported on Mac (x86 and Apple Silicon), Windows, and Linux. To install Terragrunt, follow the guide on how to install Terragrunt on the Terragrunt website.
If you need multiple versions of Terragrunt installed, tgswitch is a tool for managing and using multiple versions of Terragrunt with a similar feature set to
To learn more about Terragrunt, check out the official documentation.
Now that you’ve got the required tools installed, you’ll learn how to access the IaC Library code.
If you’re ready to get started with creating and deploying a module, jump to deploying your first module.