Snabbstart: Skapa en Azure SQL databasserver och databas med Terraform
Att skapa en enskild databas är det snabbaste och enklaste alternativet för att skapa en databas i Azure SQL Database. Den här snabbstarten visar hur du skapar en enkel databas med Terraform.
Terraform möjliggör definition, förhandsversion och distribution av molninfrastruktur. Med Terraform skapar du konfigurationsfiler med hjälp av HCL-syntax. Med HCL-syntaxen kan du ange molnleverantören – till exempel Azure – och de element som utgör din molninfrastruktur. När du har skapat konfigurationsfilerna skapar du en körningsplan som gör att du kan förhandsgranska dina infrastrukturändringar innan de distribueras. När du har verifierat ändringarna tillämpar du körningsplanen för att distribuera infrastrukturen.
I den här artikeln kan du se hur du:
- Skapa ett slumpmässigt värde för Namnet på Azure-resursgruppen med hjälp av random_pet.
- Skapa en Azure-resursgrupp med azurerm_resource_group.
- Skapa ett slumpmässigt värde för den logiska servern i Azure med random_pet.
- Skapa ett slumpmässigt lösenord för den logiska servern i Azure med random_password.
- Skapa en logisk server i Azure med azurerm_mssql_server.
- Skapa en databas i Azure SQL Database med azurerm_mssql_database.
Förutsättningar
Implementera Terraform-koden
Anteckning
Exempelkoden för den här artikeln finns i Azure Terraform GitHub-lagringsplatsen. Du kan visa loggfilen som innehåller testresultaten från aktuella och tidigare versioner av Terraform.
Se fler artiklar och exempelkod som visar hur du använder Terraform för att hantera Azure-resurser
Skapa en katalog där du kan testa och köra Terraform-exempelkoden och göra den till den aktuella katalogen.
Skapa en fil med namnet
providers.tf
och infoga följande kod:terraform { required_version = ">=1.0" required_providers { azurerm = { source = "hashicorp/azurerm" version = "~>3.0" } random = { source = "hashicorp/random" version = "~>3.0" } } } provider "azurerm" { features {} }
Skapa en fil med namnet
main.tf
och infoga följande kod:resource "random_pet" "rg_name" { prefix = var.resource_group_name_prefix } resource "azurerm_resource_group" "rg" { name = random_pet.rg_name.id location = var.resource_group_location } resource "random_pet" "azurerm_mssql_server_name" { prefix = "sql" } resource "random_password" "admin_password" { count = var.admin_password == null ? 1 : 0 length = 20 special = true min_numeric = 1 min_upper = 1 min_lower = 1 min_special = 1 } locals { admin_password = try(random_password.admin_password[0].result, var.admin_password) } resource "azurerm_mssql_server" "server" { name = random_pet.azurerm_mssql_server_name.id resource_group_name = azurerm_resource_group.rg.name location = azurerm_resource_group.rg.location administrator_login = var.admin_username administrator_login_password = local.admin_password version = "12.0" } resource "azurerm_mssql_database" "db" { name = var.sql_db_name server_id = azurerm_mssql_server.server.id }
Skapa en fil med namnet
variables.tf
och infoga följande kod:variable "resource_group_location" { type = string description = "Location for all resources." default = "eastus" } variable "resource_group_name_prefix" { type = string description = "Prefix of the resource group name that's combined with a random ID so name is unique in your Azure subscription." default = "rg" } variable "sql_db_name" { type = string description = "The name of the SQL Database." default = "SampleDB" } variable "admin_username" { type = string description = "The administrator username of the SQL logical server." default = "azureadmin" } variable "admin_password" { type = string description = "The administrator password of the SQL logical server." sensitive = true default = null }
Skapa en fil med namnet
outputs.tf
och infoga följande kod:output "resource_group_name" { value = azurerm_resource_group.rg.name } output "sql_server_name" { value = azurerm_mssql_server.server.name } output "admin_password" { sensitive = true value = local.admin_password }
Initiera Terraform
Kör terraform init för att initiera Terraform-distributionen. Det här kommandot laddar ned den Azure-provider som krävs för att hantera dina Azure-resurser.
terraform init -upgrade
Viktiga punkter:
- Parametern
-upgrade
uppgraderar nödvändiga provider-plugin-program till den senaste versionen som uppfyller konfigurationens versionsbegränsningar.
Skapa en Terraform-körningsplan
Kör terraform-planen för att skapa en körningsplan.
terraform plan -out main.tfplan
Viktiga punkter:
- Kommandot
terraform plan
skapar en körningsplan, men kör den inte. I stället avgör den vilka åtgärder som krävs för att skapa konfigurationen som anges i konfigurationsfilerna. Med det här mönstret kan du kontrollera om körningsplanen matchar dina förväntningar innan du gör några ändringar i faktiska resurser. - Med den valfria
-out
parametern kan du ange en utdatafil för planen. Med hjälp av parametern-out
ser du till att den plan som du har granskat är exakt vad som tillämpas. - Mer information om hur du bevarar körningsplaner och säkerhet finns i avsnittet säkerhetsvarning.
Tillämpa en Terraform-körningsplan
Kör terraform för att tillämpa körningsplanen på din molninfrastruktur.
terraform apply main.tfplan
Viktiga punkter:
-
terraform apply
Exempelkommandot förutsätter att du tidigare kördeterraform plan -out main.tfplan
. - Om du har angett ett annat filnamn för parametern
-out
använder du samma filnamn i anropet tillterraform apply
. - Om du inte använde parametern
-out
anroparterraform apply
du utan parametrar.
Kontrollera resultatet
Hämta namnet på Azure-resursgruppen.
resource_group_name=$(terraform output -raw resource_group_name)
Hämta det nya logiska servernamnet.
sql_server_name=$(terraform output -raw sql_server_name)
Kör az sql db-listan för att visa namnen på alla databaser på servern.
az sql db list \ --resource-group $resource_group_name \ --server $sql_server_name \ --output table
Rensa resurser
Gör följande när du inte längre behöver de resurser som skapats via Terraform:
Kör terraform-planen och ange
destroy
flaggan.terraform plan -destroy -out main.destroy.tfplan
Viktiga punkter:
- Kommandot
terraform plan
skapar en körningsplan, men kör den inte. I stället avgör den vilka åtgärder som krävs för att skapa konfigurationen som anges i konfigurationsfilerna. Med det här mönstret kan du kontrollera om körningsplanen matchar dina förväntningar innan du gör några ändringar i faktiska resurser. - Med den valfria
-out
parametern kan du ange en utdatafil för planen. Med hjälp av parametern-out
ser du till att den plan som du har granskat är exakt vad som tillämpas. - Mer information om hur du bevarar körningsplaner och säkerhet finns i avsnittet säkerhetsvarning.
- Kommandot
Kör terraform för att tillämpa körningsplanen.
terraform apply main.destroy.tfplan
Felsöka Terraform i Azure
Felsöka vanliga problem när du använder Terraform i Azure