Terraform Modules
- Modules are reusable terraform templates
- modules will not have providers and can be called by multiple templates

- Modules can be present in (module sources)
- local folder
- git
- Terraform Cloud
- To call a module we use a module block
module <name> {
source = "<module-source>"
arg1 = value1
arg2 = value2
...
argn = valuen
}
- To create a module, just create a new folder with some name, ensure you have
- resources
- variables (inputs/arguments)
- outputs (outputs/attributes)
- Added module for security group locally
-
Refer Here for modules for vpc, security group
-
Terraform also has a registry where lots of modules are already available
-
Refer Here for a community module on vpc and try creating vpc with this module
module "vpc" {
source = "terraform-aws-modules/vpc/aws"
version = "5.21.0"
name = "my-vpc"
cidr = "10.0.0.0/16"
azs = ["ap-south-1a", "ap-south-1b"]
private_subnets = ["10.0.1.0/24", "10.0.2.0/24"]
public_subnets = ["10.0.101.0/24", "10.0.102.0/24"]
enable_nat_gateway = false
enable_vpn_gateway = false
tags = {
Terraform = "true"
Environment = "dev"
}
}
Like this:
Like Loading...