Skip to content

Commit 311ed00

Browse files
author
neil-yechenwei
committed
update code
1 parent 198b9bd commit 311ed00

File tree

4 files changed

+107
-11
lines changed

4 files changed

+107
-11
lines changed

quickstart/201-mysql-fs-db/main.tf

Lines changed: 95 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,105 @@
1+
// Generate random value for the Resource Group name
12
resource "random_pet" "rg-name" {
23
prefix = var.name_prefix
34
}
45

6+
// Generate random value for the name
7+
resource "random_string" "name" {
8+
length = 8
9+
upper = false
10+
lower = true
11+
special = false
12+
}
13+
14+
// Generate random value for the login password
15+
resource "random_password" "password" {
16+
length = 8
17+
upper = true
18+
lower = true
19+
special = true
20+
override_special = "_"
21+
}
22+
23+
// Manages the Resource Group where the resource exists
524
resource "azurerm_resource_group" "default" {
6-
name = random_pet.rg-name.id
25+
name = "mysqlfsRG-${random_pet.rg-name.id}"
726
location = var.location
827
}
928

29+
// Manages the Virtual Network
30+
resource "azurerm_virtual_network" "default" {
31+
name = "vnet-${random_string.name.result}"
32+
location = azurerm_resource_group.default.location
33+
resource_group_name = azurerm_resource_group.default.name
34+
address_space = ["10.0.0.0/16"]
35+
}
36+
37+
// Manages the Subnet
38+
resource "azurerm_subnet" "default" {
39+
name = "subnet-${random_string.name.result}"
40+
resource_group_name = azurerm_resource_group.default.name
41+
virtual_network_name = azurerm_virtual_network.default.name
42+
address_prefixes = ["10.0.2.0/24"]
43+
service_endpoints = ["Microsoft.Storage"]
44+
45+
delegation {
46+
name = "fs"
47+
48+
service_delegation {
49+
name = "Microsoft.DBforMySQL/flexibleServers"
50+
51+
actions = [
52+
"Microsoft.Network/virtualNetworks/subnets/join/action",
53+
]
54+
}
55+
}
56+
}
57+
58+
// Enables you to manage Private DNS zones within Azure DNS
59+
resource "azurerm_private_dns_zone" "default" {
60+
name = "${random_string.name.result}.mysql.database.azure.com"
61+
resource_group_name = azurerm_resource_group.default.name
62+
}
63+
64+
// Enables you to manage Private DNS zone Virtual Network Links
65+
resource "azurerm_private_dns_zone_virtual_network_link" "default" {
66+
name = "mysqlfsVnetZone${random_string.name.result}.com"
67+
private_dns_zone_name = azurerm_private_dns_zone.default.name
68+
virtual_network_id = azurerm_virtual_network.default.id
69+
resource_group_name = azurerm_resource_group.default.name
70+
}
71+
72+
// Manages the MySQL Flexible Server
1073
resource "azurerm_mysql_flexible_server" "default" {
11-
name = "${var.name_prefix}-server"
12-
resource_group_name = azurerm_resource_group.default.name
13-
location = azurerm_resource_group.default.location
14-
administrator_login = "adminTerraform"
15-
administrator_password = "QAZwsx123"
16-
sku_name = "B_Standard_B1s"
17-
zone = "1"
74+
name = "mysqlfs-${random_string.name.result}"
75+
resource_group_name = azurerm_resource_group.default.name
76+
location = azurerm_resource_group.default.location
77+
administrator_login = random_string.name.result
78+
administrator_password = random_password.password.result
79+
zone = "1"
80+
version = "8.0.21"
81+
backup_retention_days = 7
82+
geo_redundant_backup_enabled = false
83+
84+
storage {
85+
size_gb = 20
86+
iops = 360
87+
}
88+
89+
delegated_subnet_id = azurerm_subnet.default.id
90+
private_dns_zone_id = azurerm_private_dns_zone.default.id
91+
sku_name = "GP_Standard_D2ds_v4"
92+
93+
high_availability {
94+
mode = "ZoneRedundant"
95+
standby_availability_zone = "2"
96+
}
97+
98+
maintenance_window {
99+
day_of_week = 0
100+
start_hour = 8
101+
start_minute = 0
102+
}
103+
104+
depends_on = [azurerm_private_dns_zone_virtual_network_link.default]
18105
}

quickstart/201-mysql-fs-db/mysql-fs-db.tf

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1+
// Manages the MySQL Flexible Server Database
12
resource "azurerm_mysql_flexible_database" "default" {
2-
name = "${var.name_prefix}db"
3+
name = "mysqlfsdb_${random_string.name.result}"
34
resource_group_name = azurerm_resource_group.default.name
45
server_name = azurerm_mysql_flexible_server.default.name
56
charset = "utf8"

quickstart/201-mysql-fs-db/readme.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,21 @@ This template deploys an [Azure MySQL Flexible Server Database](https://registry
55
## Terraform resource types
66

77
- [random_pet](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/pet)
8+
- [random_string](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/string)
9+
- [random_password](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/password)
810
- [azurerm_resource_group](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/resource_group)
11+
- [azurerm_virtual_network](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/virtual_network)
12+
- [azurerm_subnet](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/subnet)
13+
- [azurerm_private_dns_zone](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/private_dns_zone)
14+
- [azurerm_private_dns_zone_virtual_network_link](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/private_dns_zone_virtual_network_link)
915
- [azurerm_mysql_flexible_server](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/mysql_flexible_server)
1016
- [azurerm_mysql_flexible_database](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/mysql_flexible_database)
1117

1218
## Variables
1319

1420
| Name | Description |
1521
|-|-|
16-
| `name_prefix` | (Optional) Prefix of the resource name. Value defaults to: mysqlfs|
22+
| `name_prefix` | (Optional) Prefix of the resource name. Value defaults to: tftest|
1723
| `location` | (Optional) Azure Region in which to deploy these resources. Value defaults to: eastus |
1824

1925
## Example
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
variable "name_prefix" {
2-
default = "mysqlfs"
2+
type = string
3+
default = "tftest"
34
description = "Prefix of the resource name."
45
}
56

67
variable "location" {
8+
type = string
79
default = "eastus"
810
description = "Location of the resource."
911
}

0 commit comments

Comments
 (0)