This repository helps you implement infrastructure as modular multi environment code using Terraform and Microsoft Azure.
📦04_terraform_modular_multi_env
┣ 📂.terraform
┃ ┗ 📂modules
┃ ┃ ┗ 📜modules.json
┣ 📂env
┃ ┣ 📂dev
┃ ┃ ┗ 📜dev.tfvars
┃ ┣ 📂prd
┃ ┃ ┗ 📜prod.tfvars
┃ ┗ 📂qa
┃ ┃ ┗ 📜qa.tfvars
┣ 📂modules
┃ ┣ 📂dns
┃ ┃ ┣ 📜README.md
┃ ┃ ┣ 📜main.tf
┃ ┃ ┣ 📜outputs.tf
┃ ┃ ┗ 📜variables.tf
┃ ┗ 📂vm
┃ ┃ ┣ 📜README.md
┃ ┃ ┣ 📜main.tf
┃ ┃ ┣ 📜outputs.tf
┃ ┃ ┗ 📜variables.tf
┣ 📜.DS_Store
┣ 📜.gitignore
┣ 📜README.md
┣ 📜main.tf
┣ 📜providers.tf
┣ 📜variables.tf
┗ 📜versions.tf
In order to follow this documentation and try it by yourself, you need:
- A Microsoft Azure account. You can create a free trial account.
- Install Terraform on your machine, if you want to experiment the scripts locally
- Fork this repository into your GitHub account
- Install the Azure CLI
| Name | Type |
|---|---|
| azurerm_network_interface.main | resource |
| azurerm_resource_group.rg | resource |
| azurerm_subnet.internal | resource |
| azurerm_virtual_machine.main | resource |
| azurerm_virtual_network.main | resource |
| Name | Type |
|---|---|
| azurerm_private_dns_zone.dns | resource |
| azurerm_resource_group.rg | resource |
| Name | Description | Type | Default | Required |
|---|---|---|---|---|
| address_prefixes | n/a | string |
n/a | yes |
| address_space | Virtual Machine module variables | string |
n/a | yes |
| admin_password | n/a | string |
n/a | yes |
| admin_username | n/a | string |
n/a | yes |
| computer_name | n/a | string |
n/a | yes |
| disable_password_authentication | n/a | any |
n/a | yes |
| dns_location | DNS module variables | string |
n/a | yes |
| dns_name | n/a | string |
n/a | yes |
| ip_conf_name | n/a | string |
n/a | yes |
| managed_disk_type | n/a | string |
n/a | yes |
| offer | n/a | string |
n/a | yes |
| os_caching | n/a | string |
n/a | yes |
| os_create_option | n/a | string |
n/a | yes |
| os_disk_name | n/a | string |
n/a | yes |
| prefix | Global variables | string |
n/a | yes |
| private_ip_address_allocation | n/a | string |
n/a | yes |
| publisher | n/a | string |
n/a | yes |
| sku | n/a | string |
n/a | yes |
| subnet_name | n/a | string |
n/a | yes |
| tags | n/a | map(any) |
n/a | yes |
| vm_size | n/a | string |
n/a | yes |
No outputs.