Remote Modules
Explore how to create and use remote Terraform modules hosted on platforms like GitHub, enabling reusable infrastructure code across projects. Understand module cloning, initialization, and how to pin module versions with git tags to ensure stable, version-controlled deployments.
Remote modules
Modules are great for enabling you to reuse configuration blocks across a project. What if you want to build up a library of modules and share them across your company or with your friends, though? Terraform has answered that question with remote modules. A remote module is a module hosted externally to the local file system. Terraform supports many different remote module sources such as GitHub, BitBucket, and S3.
Project example
We are going to use GitHub to host the sqs-with-backoff module that we declared and then
reference in our local project:
provider "aws" {
region = "us-east-2"
}
module "work_queue" {
source = "github.com/kevholditch/sqs-with-backoff"
queue_name = "work-queue"
}
output "work_queue" {
value = module.work_queue.queue
}
output "work_queue_dead_letter_queue" {
value = module.work_queue.dead_letter_queue
}
You will notice that this code is almost the same as the code we wrote earlier when using the
sqs-with-backoff module. The only difference is that we are setting the source of the module
to github.com/kevholditch/sqs-with-backoff ...