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
+ }
0 commit comments