Terraform modules: source
The source argument in a module block tells Terraform where to find the source code for the desired child module.
source = "terraform-aws-modules/ec2-instance/aws"
Terraform uses this during the module installation step of terraform init
to download the source code to a directory on local disk so that it can be used by other Terraform commands.
Examples in main.tf
module "consul" { source = "./path/to/you/module" }
module "yourmodule" { source = "github.com/your-project/terraform-your-templates/modules/yourmodule" }
module "vpc" { source = "git::https://example.com/vpc.git?ref=v1.2.0" }
module "db" { source = "terraform-aws-modules/rds/aws" }
Terraform source types
https://www.terraform.io/docs/language/modules/sources.html
- Local paths
- Terraform Registry
- GitHub
- Bitbucket
- Generic Git, Mercurial repositories
- HTTP URLs
- S3 buckets
- GCS buckets
Related terms
terraform init
- Error: Module not found: Address could not be resolved
- Terraform Associate: Contrast module source options
See also
- Terraform modules,
terraform get
,module { source }
, AWS modules,module.
, child modules, Terraform modules inputs, submodules,terraform init -upgrade
- Terraform, OpenTofu, Terrakube.org, Installation, Terraform AWS, Terraform GCP, Terraform commands, Terraform Cloud, Terraform Enterprise (TFE), HCL, HIL, meta-arguments, providers, modules, resource, provisioners, data sources, backends: remote backends, examples, configuration files, state files, variables, types, Terraform Registry, conditionals:
depends_on
, functions, Blocks, dynamic blocks, errors, Terragrunt, Terraformer, Terratest, Terraform certifications, Terraform map type, Terraform Associate, Terraform: list type,TF_VAR_, TF_LOG
, Terraform provider versioning, Terraform Style Conventions, Required version, Terraform plugin, Terraform Named Values, tags, Changelog,tfsec, tflint
, Operators, Expressions:for, splat
, Debugging, Namespaces, Terraform Landing Zones, CDKTF, Atmos
Advertising: