quickstart/101-virtual-network-public-ip-prefix/main.tf (95 lines of code) (raw):
# Random pet resource to generate a unique name for the resource group
resource "random_pet" "rg_name" {
prefix = var.resource_group_name_prefix
}
# Create a resource group
resource "azurerm_resource_group" "example" {
location = var.resource_group_location
name = random_pet.rg_name.id
}
# Create a public IP prefix: IPv4 Zone redundant
resource "azurerm_public_ip_prefix" "my_ipv4" {
name = "myIPv4"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
ip_version = "IPv4"
prefix_length = 28
zones = ["1", "2", "3"]
}
# Create a public IP prefix: IPv4 Zonal
resource "azurerm_public_ip_prefix" "my_ipv4_zonal" {
name = "myIPv4Zonal"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
ip_version = "IPv4"
prefix_length = 28
zones = ["2"]
}
# Create a public IP prefix: IPv4 Non-Zonal
resource "azurerm_public_ip_prefix" "my_ipv4_non_zonal" {
name = "myIPv4NonZonal"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
ip_version = "IPv4"
prefix_length = 28
}
# Create a public IP prefix: IPv4 with Routing Preference set to Internet
resource "azurerm_public_ip_prefix" "my_ipv4_rp_internet" {
name = "myIPv4RPInternet"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
ip_version = "IPv4"
prefix_length = 28
tags = {
RoutingPreference = "Internet"
}
}
# Create a public IP prefix: IPv6 Zone redundant
resource "azurerm_public_ip_prefix" "my_ipv6" {
name = "myIpv6"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
ip_version = "IPv6"
prefix_length = 124
zones = ["1", "2", "3"]
}
# Create a public IP prefix: IPv6 Zonal
resource "azurerm_public_ip_prefix" "my_ipv6_zonal" {
name = "myIpv6Zonal"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
ip_version = "IPv6"
prefix_length = 124
zones = ["2"]
}
# Create a public IP prefix: IPv6 Non-Zonal
resource "azurerm_public_ip_prefix" "my_ipv6_non_zonal" {
name = "myIpv6NonZonal"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
ip_version = "IPv6"
prefix_length = 124
}
# Create a public IP (IPv4) and specify the public IP prefix
resource "azurerm_public_ip" "my_public_ip_ipv4" {
name = "myPublicIPIPv4"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
sku = "Standard"
allocation_method = "Static"
ip_version = "IPv4"
public_ip_prefix_id = azurerm_public_ip_prefix.my_public_ip_prefix_ipv4.id
}
# Create a public IP prefix: IPv4
resource "azurerm_public_ip_prefix" "my_public_ip_prefix_ipv4" {
name = "myPublicIpPrefix1"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
ip_version = "IPv4" # Default
prefix_length = 28
}
# Create a public IP (IPv6) and specify the public IP prefix
resource "azurerm_public_ip" "my_public_ip_ipv6" {
name = "myPublicIPIPv6"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
sku = "Standard"
allocation_method = "Static"
ip_version = "IPv6"
public_ip_prefix_id = azurerm_public_ip_prefix.my_public_ip_prefix_ipv6.id
}
# Create a public IP prefix: IPv6
resource "azurerm_public_ip_prefix" "my_public_ip_prefix_ipv6" {
name = "myPublicIpPrefix2"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
ip_version = "IPv6"
prefix_length = 124
}