97 lines
2.3 KiB
Terraform
97 lines
2.3 KiB
Terraform
|
|
# Example: Using Azure Networking Module
|
||
|
|
|
||
|
|
terraform {
|
||
|
|
required_version = ">= 1.0"
|
||
|
|
|
||
|
|
required_providers {
|
||
|
|
azurerm = {
|
||
|
|
source = "hashicorp/azurerm"
|
||
|
|
version = "~> 3.0"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
provider "azurerm" {
|
||
|
|
features {}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Resource Group
|
||
|
|
resource "azurerm_resource_group" "example" {
|
||
|
|
name = "rg-example"
|
||
|
|
location = "eastus"
|
||
|
|
}
|
||
|
|
|
||
|
|
# Networking Module
|
||
|
|
module "networking" {
|
||
|
|
source = "../../modules/azure/networking"
|
||
|
|
|
||
|
|
resource_group_name = azurerm_resource_group.example.name
|
||
|
|
location = azurerm_resource_group.example.location
|
||
|
|
vnet_name = "vnet-example"
|
||
|
|
address_space = ["10.0.0.0/16"]
|
||
|
|
|
||
|
|
subnets = {
|
||
|
|
frontend = {
|
||
|
|
name = "snet-frontend"
|
||
|
|
address_prefixes = ["10.0.1.0/24"]
|
||
|
|
service_endpoints = ["Microsoft.Storage"]
|
||
|
|
}
|
||
|
|
backend = {
|
||
|
|
name = "snet-backend"
|
||
|
|
address_prefixes = ["10.0.2.0/24"]
|
||
|
|
service_endpoints = []
|
||
|
|
}
|
||
|
|
database = {
|
||
|
|
name = "snet-database"
|
||
|
|
address_prefixes = ["10.0.3.0/24"]
|
||
|
|
service_endpoints = ["Microsoft.Sql"]
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
network_security_groups = {
|
||
|
|
frontend_nsg = {
|
||
|
|
name = "nsg-frontend"
|
||
|
|
subnet_key = "frontend"
|
||
|
|
security_rules = [
|
||
|
|
{
|
||
|
|
name = "AllowHTTP"
|
||
|
|
priority = 100
|
||
|
|
direction = "Inbound"
|
||
|
|
access = "Allow"
|
||
|
|
protocol = "Tcp"
|
||
|
|
source_port_range = "*"
|
||
|
|
destination_port_range = "80"
|
||
|
|
source_address_prefix = "*"
|
||
|
|
destination_address_prefix = "*"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
name = "AllowHTTPS"
|
||
|
|
priority = 110
|
||
|
|
direction = "Inbound"
|
||
|
|
access = "Allow"
|
||
|
|
protocol = "Tcp"
|
||
|
|
source_port_range = "*"
|
||
|
|
destination_port_range = "443"
|
||
|
|
source_address_prefix = "*"
|
||
|
|
destination_address_prefix = "*"
|
||
|
|
}
|
||
|
|
]
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
tags = {
|
||
|
|
Environment = "example"
|
||
|
|
ManagedBy = "Terraform"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Outputs
|
||
|
|
output "vnet_id" {
|
||
|
|
value = module.networking.vnet_id
|
||
|
|
}
|
||
|
|
|
||
|
|
output "subnet_ids" {
|
||
|
|
value = module.networking.subnet_ids
|
||
|
|
}
|
||
|
|
|