Skip to main content

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

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.

Installation

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.

Learn more

If you’re new to Terraform, we recommend starting with learning about Terraform’s configuration language then familiarizing yourself with the basics of provisioning infrastructure using Terraform.

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

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.

info

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.

Installation

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 tfenv.

Learn more

To learn more about Terragrunt, check out the official documentation.

What’s Next

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.