github.com/yorinasub17/go-cloud@v0.27.40/mysql/azuremysql/main.tf (about) 1 terraform { 2 required_version = "~>0.12" 3 } 4 5 # See documentation for more info: https://www.terraform.io/docs/providers/azurerm/auth/azure_cli.html 6 provider "azurerm" { 7 version = "~> 1.22" 8 } 9 10 provider "random" { 11 version = "~> 2.1" 12 } 13 14 # Run Azure CLI command "az account list-locations" to see list of all locations. 15 variable "location" { 16 description = "The Azure Region in which all resources in this example should be created." 17 } 18 19 # See documentation for more info: https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-overview 20 variable "resourcegroup" { 21 description = "The Azure Resource Group Name within your Subscription in which this resource will be created." 22 } 23 24 resource "random_string" "db_password" { 25 keepers = { 26 region = var.location 27 } 28 29 special = false 30 length = 20 31 } 32 33 resource "random_id" "serverid" { 34 keepers = { 35 region = var.location 36 } 37 38 byte_length = 2 39 } 40 41 resource "azurerm_resource_group" "mysqlrg" { 42 name = var.resourcegroup 43 location = var.location 44 } 45 46 resource "azurerm_mysql_server" "mysqlserver" { 47 name = format("go-cdk-test-%v", random_id.serverid.dec) 48 location = azurerm_resource_group.mysqlrg.location 49 resource_group_name = azurerm_resource_group.mysqlrg.name 50 51 sku { 52 name = "B_Gen5_2" 53 capacity = 2 54 tier = "Basic" 55 family = "Gen5" 56 } 57 58 storage_profile { 59 storage_mb = 5120 60 backup_retention_days = 7 61 geo_redundant_backup = "Disabled" 62 } 63 64 administrator_login = "gocloudadmin" 65 administrator_login_password = random_string.db_password.result 66 version = "5.7" 67 ssl_enforcement = "Enabled" 68 } 69 70 # See documentation for more info: https://www.terraform.io/docs/providers/azurerm/r/sql_firewall_rule.html 71 resource "azurerm_mysql_firewall_rule" "addrule" { 72 name = "ClientIPAddress" 73 resource_group_name = azurerm_resource_group.mysqlrg.name 74 server_name = azurerm_mysql_server.mysqlserver.name 75 start_ip_address = "0.0.0.0" 76 end_ip_address = "255.255.255.255" 77 } 78 79 resource "azurerm_mysql_database" "mysqldb" { 80 name = "testdb" 81 resource_group_name = azurerm_resource_group.mysqlrg.name 82 server_name = azurerm_mysql_server.mysqlserver.name 83 charset = "utf8" 84 collation = "utf8_unicode_ci" 85 } 86 87 output "username" { 88 value = "${azurerm_mysql_server.mysqlserver.administrator_login}@${azurerm_mysql_server.mysqlserver.name}" 89 description = "The MySQL username to connect with." 90 } 91 92 output "password" { 93 value = random_string.db_password.result 94 sensitive = true 95 description = "The MySQL instance password for the user." 96 } 97 98 output "servername" { 99 value = azurerm_mysql_server.mysqlserver.fqdn 100 description = "The host name of the Azure Database for MySQL instance." 101 } 102 103 output "database" { 104 value = "testdb" 105 description = "The databasename of the Azure Database for MySQL instance." 106 } 107