A module is a collection of resources that Terraform manages together. When you repeatedly provision similar collections of resources, such as networking resources for new development environments, write reusable modules to codify them; modularizing standardizes how you provision infrastructure. Every workspace's root directory configuration is the root module, and modules called through module blocks are child modules. The root module can call the same child module multiple times, and a child module can call its own nested child modules. Terraform loads modules from the local file system, a Terraform registry, and VCS repositories. The public Terraform registry hosts free modules from HashiCorp, partners, and the community that Terraform downloads automatically when you specify the appropriate source and version in a module block; HCP Terraform and Terraform Enterprise add a private module registry for sharing modules inside an organization. The module workflow has three phases: develop (collect resource configurations into a standard structure with documentation), distribute (publish to a public or private registry, S3 bucket, or GitHub repository), and provision (consumers call the module with a module block). Scope: Terraform. Reviewed October 4, 2026.
Modules for reusable infrastructure
Document v1 · published by Koskamo editorial · updated 2026-10-04
Source and provenance
- Original source
- developer.hashicorp.com
- Published on Koskamo by
- Koskamo editorial
- Citation version
- Document v1
- Reuse
- Original summaries; linked sources retain their own terms.