parent
95a5b0cac4
commit
5e48773198
@ -1,5 +1,10 @@
|
||||
resource "azurerm_resource_group" "webAppMySqlRg" {
|
||||
name = "${var.rg}"
|
||||
location = "${var.loc}"
|
||||
tags = "${var.tags}"
|
||||
resource "azurerm_resource_group" "web_app_mysql_rg" {
|
||||
name = "${random_pet.prefix.id}-rg"
|
||||
location = var.loc
|
||||
tags = var.tags
|
||||
}
|
||||
|
||||
resource "random_pet" "prefix" {
|
||||
prefix = var.prefix
|
||||
length = 1
|
||||
}
|
@ -1,29 +1,34 @@
|
||||
resource "azurerm_mysql_server" "webAppBackend" {
|
||||
name = "${var.siteName}pgserver"
|
||||
location = "${azurerm_resource_group.webAppMySqlRg.location}"
|
||||
resource_group_name = "${azurerm_resource_group.webAppMySqlRg.name}"
|
||||
tags = "${azurerm_resource_group.webAppMySqlRg.tags}"
|
||||
resource "azurerm_mysql_server" "web_app_backend" {
|
||||
name = "${replace(random_pet.prefix.id, "-", "")}pgserver"
|
||||
location = azurerm_resource_group.web_app_mysql_rg.location
|
||||
resource_group_name = azurerm_resource_group.web_app_mysql_rg.name
|
||||
tags = azurerm_resource_group.web_app_mysql_rg.tags
|
||||
|
||||
administrator_login = "${var.administratorLogin}"
|
||||
administrator_login_password = "${var.administratorLoginPassword}"
|
||||
version = "${var.mysqlVersion}"
|
||||
ssl_enforcement = "Disabled"
|
||||
sku {
|
||||
name = "${var.databaseSkuName}"
|
||||
capacity = "${var.databaseDTU}"
|
||||
tier = "${var.databaseSkuTier}"
|
||||
family = "${var.databaseSkuFamily}"
|
||||
}
|
||||
storage_profile {
|
||||
storage_mb = "${var.databaseSkuSizeMB}"
|
||||
}
|
||||
administrator_login = "${var.prefix}-admin"
|
||||
administrator_login_password = random_password.password.result
|
||||
|
||||
sku_name = var.database_sku_name
|
||||
storage_mb = var.database_sku_size_MB
|
||||
version = var.mysql_version
|
||||
|
||||
ssl_enforcement_enabled = false
|
||||
ssl_minimal_tls_version_enforced = "TLSEnforcementDisabled"
|
||||
}
|
||||
|
||||
resource "azurerm_mysql_database" "webAppBackend" {
|
||||
name = "${var.siteName}database"
|
||||
resource_group_name = "${azurerm_resource_group.webAppMySqlRg.name}"
|
||||
resource "azurerm_mysql_database" "web_app_backend" {
|
||||
name = "${replace(random_pet.prefix.id, "-", "")}database"
|
||||
resource_group_name = azurerm_resource_group.web_app_mysql_rg.name
|
||||
|
||||
server_name = "${azurerm_mysql_server.webAppBackend.name}"
|
||||
charset = "utf8"
|
||||
collation = "utf8_unicode_ci"
|
||||
server_name = azurerm_mysql_server.web_app_backend.name
|
||||
charset = "utf8mb4"
|
||||
collation = "utf8mb4_unicode_ci"
|
||||
}
|
||||
|
||||
resource "random_password" "password" {
|
||||
length = 20
|
||||
min_lower = 1
|
||||
min_upper = 1
|
||||
min_numeric = 1
|
||||
min_special = 1
|
||||
special = false
|
||||
}
|
@ -1,15 +0,0 @@
|
||||
output "webAppUrl" {
|
||||
value = "${azurerm_app_service.webAppFrontend.default_site_hostname}"
|
||||
}
|
||||
|
||||
output "databaseName" {
|
||||
value = "${azurerm_mysql_database.webAppBackend.name}"
|
||||
}
|
||||
|
||||
output "databaseServerName" {
|
||||
value = "${azurerm_mysql_server.webAppBackend.fqdn}"
|
||||
}
|
||||
|
||||
output "appServicePlanName" {
|
||||
value = "${azurerm_app_service_plan.webAppFrontend.name}"
|
||||
}
|
24
quickstart/201-web-app-postgres-keyvault/outputs.tf
Normal file
24
quickstart/201-web-app-postgres-keyvault/outputs.tf
Normal file
@ -0,0 +1,24 @@
|
||||
output "web_app_url" {
|
||||
value = azurerm_app_service.main.default_site_hostname
|
||||
}
|
||||
|
||||
output "database_name" {
|
||||
value = azurerm_mysql_database.web_app_backend.name
|
||||
}
|
||||
|
||||
output "database_server_name" {
|
||||
value = azurerm_mysql_server.web_app_backend.fqdn
|
||||
}
|
||||
|
||||
output "app_service_plan_name" {
|
||||
value = azurerm_app_service_plan.web_app_frontend.name
|
||||
}
|
||||
|
||||
output "mysql_server_admin_name" {
|
||||
value = azurerm_mysql_server.web_app_backend.administrator_login
|
||||
}
|
||||
|
||||
output "mysql_server_admin_password" {
|
||||
sensitive = true
|
||||
value = azurerm_mysql_server.web_app_backend.administrator_login_password
|
||||
}
|
@ -1,3 +1,18 @@
|
||||
provider "azurerm" {
|
||||
version = "~>1.17"
|
||||
terraform {
|
||||
required_version = ">= 1.0"
|
||||
|
||||
required_providers {
|
||||
azurerm = {
|
||||
source = "hashicorp/azurerm"
|
||||
version = ">= 3.0, < 4.0"
|
||||
}
|
||||
random = {
|
||||
source = "hashicorp/random"
|
||||
version = ">= 3.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
provider "azurerm" {
|
||||
features {}
|
||||
}
|
@ -1,12 +1,8 @@
|
||||
rg = "mcg623webAppMysql"
|
||||
loc = "eastus2"
|
||||
tags = {
|
||||
type = "sample"
|
||||
services = "MySql, WebApp, Azure database"
|
||||
}
|
||||
|
||||
administratorLogin = "markg"
|
||||
siteName = "mcgecd69mysql"
|
||||
|
||||
servicePlanTier = "Standard"
|
||||
servicePlanSize = "S1"
|
||||
service_plan_tier = "Standard"
|
||||
service_plan_size = "S1"
|
@ -1,65 +1,50 @@
|
||||
variable "rg" {
|
||||
description = "Azure resource group for all resources."
|
||||
}
|
||||
|
||||
variable "siteName" {
|
||||
description = "Name of azure web app"
|
||||
variable "prefix" {
|
||||
type = string
|
||||
default = "pgkv"
|
||||
description = "Prefix of the resource name"
|
||||
}
|
||||
|
||||
variable "tags" {
|
||||
type = map(any)
|
||||
default = {
|
||||
type = "sample"
|
||||
services = "MySql, WebApp, Azure database"
|
||||
}
|
||||
description = "Azure Tags for all resources."
|
||||
default = {}
|
||||
}
|
||||
|
||||
|
||||
variable "administratorLogin" {
|
||||
description = "Database administrator login name"
|
||||
variable "database_sku_name" {
|
||||
type = string
|
||||
default = "GP_Gen5_2"
|
||||
description = "The name of the SKU, follows the tier + family + cores pattern (e.g. `B_Gen4_1`, `GP_Gen5_8`)."
|
||||
}
|
||||
|
||||
variable "administratorLoginPassword" {
|
||||
description = "Database administrator password"
|
||||
}
|
||||
|
||||
variable "databaseDTU" {
|
||||
description = "Azure database for MySQL pricing tier"
|
||||
default = 2
|
||||
}
|
||||
|
||||
variable "databaseSkuName" {
|
||||
description = "Azure database for MySQL sku name"
|
||||
default = "GP_Gen4_2"
|
||||
}
|
||||
|
||||
variable "databaseSkuFamily" {
|
||||
description = "Azure database for MySQL sku family"
|
||||
default = "Gen4"
|
||||
}
|
||||
|
||||
|
||||
variable "databaseSkuSizeMB" {
|
||||
description = "Azure database for MySQL Sku Size"
|
||||
variable "database_sku_size_MB" {
|
||||
type = number
|
||||
default = 5120
|
||||
description = "Azure database for MySQL Sku Size"
|
||||
}
|
||||
|
||||
variable "databaseSkuTier" {
|
||||
description = "Azure database for MySQL pricing tier"
|
||||
default = "GeneralPurpose"
|
||||
}
|
||||
|
||||
variable "mysqlVersion" {
|
||||
variable "mysql_version" {
|
||||
type = string
|
||||
default = "5.7"
|
||||
description = "MySQL version"
|
||||
default = "5.6"
|
||||
}
|
||||
|
||||
variable "loc" {
|
||||
type = string
|
||||
default = "eastus"
|
||||
description = "Location for all resources."
|
||||
default = "eastus2"
|
||||
}
|
||||
|
||||
variable "servicePlanTier" {
|
||||
variable "service_plan_tier" {
|
||||
type = string
|
||||
default = "Standard"
|
||||
description = "Azure managed application service plan pricing tier"
|
||||
}
|
||||
|
||||
variable "servicePlanSize" {
|
||||
variable "service_plan_size" {
|
||||
type = string
|
||||
default = "S1"
|
||||
description = "Azure managed application service plan instance size"
|
||||
}
|
||||
|
@ -1,25 +1,25 @@
|
||||
resource "azurerm_app_service_plan" "webAppFrontend" {
|
||||
name = "${var.siteName}serviceplan"
|
||||
resource_group_name = "${azurerm_resource_group.webAppMySqlRg.name}"
|
||||
location = "${azurerm_resource_group.webAppMySqlRg.location}"
|
||||
tags = "${azurerm_resource_group.webAppMySqlRg.tags}"
|
||||
resource "azurerm_app_service_plan" "web_app_frontend" {
|
||||
name = "${replace(random_pet.prefix.id, "-", "")}serviceplan"
|
||||
resource_group_name = azurerm_resource_group.web_app_mysql_rg.name
|
||||
location = azurerm_resource_group.web_app_mysql_rg.location
|
||||
tags = azurerm_resource_group.web_app_mysql_rg.tags
|
||||
|
||||
sku {
|
||||
tier = "${var.servicePlanTier}"
|
||||
size = "${var.servicePlanSize}"
|
||||
tier = var.service_plan_tier
|
||||
size = var.service_plan_size
|
||||
}
|
||||
}
|
||||
|
||||
resource "azurerm_app_service" "webAppFrontend" {
|
||||
name = "${var.siteName}"
|
||||
location = "${azurerm_resource_group.webAppMySqlRg.location}"
|
||||
resource_group_name = "${azurerm_resource_group.webAppMySqlRg.name}"
|
||||
tags = "${azurerm_resource_group.webAppMySqlRg.tags}"
|
||||
resource "azurerm_app_service" "main" {
|
||||
name = "${replace(random_pet.prefix.id, "-", "")}service"
|
||||
location = azurerm_resource_group.web_app_mysql_rg.location
|
||||
resource_group_name = azurerm_resource_group.web_app_mysql_rg.name
|
||||
tags = azurerm_resource_group.web_app_mysql_rg.tags
|
||||
|
||||
app_service_plan_id = "${azurerm_app_service_plan.webAppFrontend.id}"
|
||||
app_service_plan_id = azurerm_app_service_plan.web_app_frontend.id
|
||||
connection_string {
|
||||
name = "DefaultConnect"
|
||||
type = "MySql"
|
||||
value = "Database=${azurerm_mysql_database.webAppBackend.name};Data Source=${azurerm_mysql_server.webAppBackend.fqdn};User Id=${var.administratorLogin}@${azurerm_mysql_server.webAppBackend.name};Password=${var.administratorLoginPassword}"
|
||||
value = "Database=${azurerm_mysql_database.web_app_backend.name};Data Source=${azurerm_mysql_server.web_app_backend.fqdn};User Id=${random_pet.prefix.id}-admin@${azurerm_mysql_server.web_app_backend.name};Password=${random_password.password.result}"
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user