DevOps Rich DevOps content for Infrastructure Engineers

Terraform Modules

Overview

Terraform Registry - Public

module "vnet" {
  source  = "Azure/vnet/azurerm"
  version = "2.5.0" 
  vnet_name = "vnet1"
  resource_group_name = "rg1"
  address_space       = ["10.0.0.0/16"]
  subnet_prefixes     = ["10.0.1.0/24"]
  subnet_names        = ["subnet1"]
  tags = {
    environment = "dev"
  } 
}
subnet_id = module.vnet.vnet_subnets[0]
output "virtual_network_name" {
  description = "Virtual Network Name"
  value = module.vnet.vnet_name
}

Taint Resource

Note: HashiCorp now recommend the use of terraform apply -replace='module.vnet.azurerm_subnet.subnet[2]' instead of the [terraform taint](https://www.terraform.io/cli/commands/taint) command.

Child Module

module "resource_group" {
  source = "./modules/resource_group"
  location                          = "uksouth"
  resource_group_name               = "rg1" 
}

Get Command

Publishing a Module

module "staticwebsitepublic" {
  source  = "richbjhudson/staticwebsitepublic/azurerm"
  version = "1.0.0"
  # insert the 8 required variables here
}

Module Source

module "s3-bucket" {
  source  = "app.terraform.io/richbjhudson/s3-bucket/aws"
  version = "2.13.0"
  # insert required variables here
}