parent
95a5b0cac4
commit
5e48773198
@ -1,5 +1,10 @@
|
|||||||
resource "azurerm_resource_group" "webAppMySqlRg" {
|
resource "azurerm_resource_group" "web_app_mysql_rg" {
|
||||||
name = "${var.rg}"
|
name = "${random_pet.prefix.id}-rg"
|
||||||
location = "${var.loc}"
|
location = var.loc
|
||||||
tags = "${var.tags}"
|
tags = var.tags
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "random_pet" "prefix" {
|
||||||
|
prefix = var.prefix
|
||||||
|
length = 1
|
||||||
}
|
}
|
@ -1,29 +1,34 @@
|
|||||||
resource "azurerm_mysql_server" "webAppBackend" {
|
resource "azurerm_mysql_server" "web_app_backend" {
|
||||||
name = "${var.siteName}pgserver"
|
name = "${replace(random_pet.prefix.id, "-", "")}pgserver"
|
||||||
location = "${azurerm_resource_group.webAppMySqlRg.location}"
|
location = azurerm_resource_group.web_app_mysql_rg.location
|
||||||
resource_group_name = "${azurerm_resource_group.webAppMySqlRg.name}"
|
resource_group_name = azurerm_resource_group.web_app_mysql_rg.name
|
||||||
tags = "${azurerm_resource_group.webAppMySqlRg.tags}"
|
tags = azurerm_resource_group.web_app_mysql_rg.tags
|
||||||
|
|
||||||
administrator_login = "${var.administratorLogin}"
|
administrator_login = "${var.prefix}-admin"
|
||||||
administrator_login_password = "${var.administratorLoginPassword}"
|
administrator_login_password = random_password.password.result
|
||||||
version = "${var.mysqlVersion}"
|
|
||||||
ssl_enforcement = "Disabled"
|
sku_name = var.database_sku_name
|
||||||
sku {
|
storage_mb = var.database_sku_size_MB
|
||||||
name = "${var.databaseSkuName}"
|
version = var.mysql_version
|
||||||
capacity = "${var.databaseDTU}"
|
|
||||||
tier = "${var.databaseSkuTier}"
|
ssl_enforcement_enabled = false
|
||||||
family = "${var.databaseSkuFamily}"
|
ssl_minimal_tls_version_enforced = "TLSEnforcementDisabled"
|
||||||
}
|
|
||||||
storage_profile {
|
|
||||||
storage_mb = "${var.databaseSkuSizeMB}"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
resource "azurerm_mysql_database" "webAppBackend" {
|
resource "azurerm_mysql_database" "web_app_backend" {
|
||||||
name = "${var.siteName}database"
|
name = "${replace(random_pet.prefix.id, "-", "")}database"
|
||||||
resource_group_name = "${azurerm_resource_group.webAppMySqlRg.name}"
|
resource_group_name = azurerm_resource_group.web_app_mysql_rg.name
|
||||||
|
|
||||||
server_name = "${azurerm_mysql_server.webAppBackend.name}"
|
server_name = azurerm_mysql_server.web_app_backend.name
|
||||||
charset = "utf8"
|
charset = "utf8mb4"
|
||||||
collation = "utf8_unicode_ci"
|
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" {
|
terraform {
|
||||||
version = "~>1.17"
|
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"
|
loc = "eastus2"
|
||||||
tags = {
|
tags = {
|
||||||
type = "sample"
|
type = "sample"
|
||||||
services = "MySql, WebApp, Azure database"
|
services = "MySql, WebApp, Azure database"
|
||||||
}
|
}
|
||||||
|
|
||||||
administratorLogin = "markg"
|
service_plan_tier = "Standard"
|
||||||
siteName = "mcgecd69mysql"
|
service_plan_size = "S1"
|
||||||
|
|
||||||
servicePlanTier = "Standard"
|
|
||||||
servicePlanSize = "S1"
|
|
@ -1,65 +1,50 @@
|
|||||||
variable "rg" {
|
variable "prefix" {
|
||||||
description = "Azure resource group for all resources."
|
type = string
|
||||||
}
|
default = "pgkv"
|
||||||
|
description = "Prefix of the resource name"
|
||||||
variable "siteName" {
|
|
||||||
description = "Name of azure web app"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
variable "tags" {
|
variable "tags" {
|
||||||
|
type = map(any)
|
||||||
|
default = {
|
||||||
|
type = "sample"
|
||||||
|
services = "MySql, WebApp, Azure database"
|
||||||
|
}
|
||||||
description = "Azure Tags for all resources."
|
description = "Azure Tags for all resources."
|
||||||
default = {}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
variable "database_sku_name" {
|
||||||
variable "administratorLogin" {
|
type = string
|
||||||
description = "Database administrator login name"
|
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" {
|
variable "database_sku_size_MB" {
|
||||||
description = "Database administrator password"
|
type = number
|
||||||
}
|
|
||||||
|
|
||||||
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"
|
|
||||||
default = 5120
|
default = 5120
|
||||||
|
description = "Azure database for MySQL Sku Size"
|
||||||
}
|
}
|
||||||
|
|
||||||
variable "databaseSkuTier" {
|
variable "mysql_version" {
|
||||||
description = "Azure database for MySQL pricing tier"
|
type = string
|
||||||
default = "GeneralPurpose"
|
default = "5.7"
|
||||||
}
|
|
||||||
|
|
||||||
variable "mysqlVersion" {
|
|
||||||
description = "MySQL version"
|
description = "MySQL version"
|
||||||
default = "5.6"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
variable "loc" {
|
variable "loc" {
|
||||||
|
type = string
|
||||||
|
default = "eastus"
|
||||||
description = "Location for all resources."
|
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"
|
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"
|
description = "Azure managed application service plan instance size"
|
||||||
}
|
}
|
||||||
|
@ -1,25 +1,25 @@
|
|||||||
resource "azurerm_app_service_plan" "webAppFrontend" {
|
resource "azurerm_app_service_plan" "web_app_frontend" {
|
||||||
name = "${var.siteName}serviceplan"
|
name = "${replace(random_pet.prefix.id, "-", "")}serviceplan"
|
||||||
resource_group_name = "${azurerm_resource_group.webAppMySqlRg.name}"
|
resource_group_name = azurerm_resource_group.web_app_mysql_rg.name
|
||||||
location = "${azurerm_resource_group.webAppMySqlRg.location}"
|
location = azurerm_resource_group.web_app_mysql_rg.location
|
||||||
tags = "${azurerm_resource_group.webAppMySqlRg.tags}"
|
tags = azurerm_resource_group.web_app_mysql_rg.tags
|
||||||
|
|
||||||
sku {
|
sku {
|
||||||
tier = "${var.servicePlanTier}"
|
tier = var.service_plan_tier
|
||||||
size = "${var.servicePlanSize}"
|
size = var.service_plan_size
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
resource "azurerm_app_service" "webAppFrontend" {
|
resource "azurerm_app_service" "main" {
|
||||||
name = "${var.siteName}"
|
name = "${replace(random_pet.prefix.id, "-", "")}service"
|
||||||
location = "${azurerm_resource_group.webAppMySqlRg.location}"
|
location = azurerm_resource_group.web_app_mysql_rg.location
|
||||||
resource_group_name = "${azurerm_resource_group.webAppMySqlRg.name}"
|
resource_group_name = azurerm_resource_group.web_app_mysql_rg.name
|
||||||
tags = "${azurerm_resource_group.webAppMySqlRg.tags}"
|
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 {
|
connection_string {
|
||||||
name = "DefaultConnect"
|
name = "DefaultConnect"
|
||||||
type = "MySql"
|
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