Skip to content

Commit 71763eb

Browse files
committed
Initial put
1 parent fe53fb9 commit 71763eb

File tree

5 files changed

+173
-0
lines changed

5 files changed

+173
-0
lines changed
Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
# Random pet resource to generate a unique name for the resource group
2+
resource "random_pet" "rg_name" {
3+
prefix = var.resource_group_name_prefix
4+
}
5+
6+
# Create a resource group
7+
resource "azurerm_resource_group" "example" {
8+
location = var.resource_group_location
9+
name = random_pet.rg_name.id
10+
}
11+
12+
# Create a public IP prefix: IPv4 Zone redundant
13+
resource "azurerm_public_ip_prefix" "my_ipv4" {
14+
name = "myIPv4"
15+
location = azurerm_resource_group.example.location
16+
resource_group_name = azurerm_resource_group.example.name
17+
18+
prefix_length = 28
19+
ip_version = "IPv4"
20+
zones = ["1", "2", "3"]
21+
}
22+
23+
# Create a public IP prefix: IPv4 Zonal
24+
resource "azurerm_public_ip_prefix" "my_ipv4_zonal" {
25+
name = "myIPv4Zonal"
26+
location = azurerm_resource_group.example.location
27+
resource_group_name = azurerm_resource_group.example.name
28+
29+
prefix_length = 28
30+
ip_version = "IPv4"
31+
zones = ["2"]
32+
}
33+
34+
# Create a public IP prefix: IPv4 Non-Zonal
35+
resource "azurerm_public_ip_prefix" "my_ipv4_non_zonal" {
36+
name = "myIPv4NonZonal"
37+
location = azurerm_resource_group.example.location
38+
resource_group_name = azurerm_resource_group.example.name
39+
40+
prefix_length = 28
41+
ip_version = "IPv4"
42+
}
43+
44+
# Create a public IP prefix: IPv4 with Routing Preference set to Internet
45+
resource "azurerm_public_ip_prefix" "my_ipv4_rp_internet" {
46+
name = "myIPv4RPInternet"
47+
location = azurerm_resource_group.example.location
48+
resource_group_name = azurerm_resource_group.example.name
49+
50+
prefix_length = 28
51+
52+
tags = {
53+
RoutingPreference = "Internet"
54+
}
55+
}
56+
57+
# Create a public IP prefix: IPv4 Zone redundant
58+
resource "azurerm_public_ip_prefix" "my_ipv6" {
59+
name = "myIpv6"
60+
location = azurerm_resource_group.example.location
61+
resource_group_name = azurerm_resource_group.example.name
62+
63+
prefix_length = 124
64+
ip_version = "IPv6"
65+
zones = ["1", "2", "3"]
66+
}
67+
68+
# Create a public IP prefix: IPv6 Zonal
69+
resource "azurerm_public_ip_prefix" "my_ipv6_zonal" {
70+
name = "myIpv6Zonal"
71+
location = azurerm_resource_group.example.location
72+
resource_group_name = azurerm_resource_group.example.name
73+
74+
prefix_length = 124
75+
ip_version = "IPv6"
76+
zones = ["2"]
77+
}
78+
79+
# Create a public IP prefix: IPv6 Non-Zonal
80+
resource "azurerm_public_ip_prefix" "my_ipv6_non_zonal" {
81+
name = "myIpv6NonZonal"
82+
location = azurerm_resource_group.example.location
83+
resource_group_name = azurerm_resource_group.example.name
84+
85+
prefix_length = 124
86+
ip_version = "IPv6"
87+
}
88+
89+
# Create a public IP (IPv4) and specify the public IP prefix
90+
resource "azurerm_public_ip" "my_public_ip_ipv4" {
91+
name = "myPublicIPIPv4"
92+
location = azurerm_resource_group.example.location
93+
resource_group_name = azurerm_resource_group.example.name
94+
allocation_method = "Static"
95+
sku = "Standard"
96+
ip_version = "IPv4"
97+
public_ip_prefix_id = azurerm_public_ip_prefix.my_public_ip_prefix_ipv4.id
98+
}
99+
100+
# Create a public IP prefix: IPv4
101+
resource "azurerm_public_ip_prefix" "my_public_ip_prefix_ipv4" {
102+
name = "myPublicIpPrefix1"
103+
location = azurerm_resource_group.example.location
104+
resource_group_name = azurerm_resource_group.example.name
105+
prefix_length = 28
106+
}
107+
108+
# Create a public IP (IPv4) and specify the public IP prefix
109+
resource "azurerm_public_ip" "my_public_ip_ipv6" {
110+
name = "myPublicIPIPv6"
111+
location = azurerm_resource_group.example.location
112+
resource_group_name = azurerm_resource_group.example.name
113+
allocation_method = "Static"
114+
public_ip_prefix_id = azurerm_public_ip_prefix.my_public_ip_prefix_ipv6.id
115+
sku = "Standard"
116+
ip_version = "IPv6"
117+
}
118+
119+
# Create a public IP prefix: IPv6
120+
resource "azurerm_public_ip_prefix" "my_public_ip_prefix_ipv6" {
121+
name = "myPublicIpPrefix2"
122+
location = azurerm_resource_group.example.location
123+
resource_group_name = azurerm_resource_group.example.name
124+
prefix_length = 28
125+
sku = "Standard"
126+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
output "resource_group_name" {
2+
value = azurerm_resource_group.example.name
3+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
terraform {
2+
required_providers {
3+
azurerm = {
4+
source = "hashicorp/azurerm"
5+
version = "~>3.0"
6+
}
7+
random = {
8+
source = "hashicorp/random"
9+
version = "~>3.0"
10+
}
11+
}
12+
}
13+
14+
provider "azurerm" {
15+
features {}
16+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Azure Public IP Prefix
2+
3+
This template deploys several Azure public IP prefixes with different settings.
4+
5+
## Terraform resource types
6+
7+
- [random_pet](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/pet)
8+
- [azurerm_resource_group](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/resource_group)
9+
- [azurerm_public_ip](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/public_ip)
10+
- [azurerm_public_ip_prefix](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/public_ip_prefix)
11+
12+
## Variables
13+
14+
| Name | Description | Default |
15+
|-|-|-|
16+
| `resource_group_name_prefix` | Prefix of the resource group name that's combined with a random ID so name is unique in your Azure subscription. | rg |
17+
| `resource_group_location` | Location of the resource group. | eastus |
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
variable "resource_group_location" {
2+
type = string
3+
default = "West Europe"
4+
description = "Location of the resource group."
5+
}
6+
7+
variable "resource_group_name_prefix" {
8+
type = string
9+
default = "rg"
10+
description = "Prefix of the resource group name that's combined with a random ID so name is unique in your Azure subscription."
11+
}

0 commit comments

Comments
 (0)