Share via


Rövid útmutató: Azure SQL adatbázis-kiszolgáló és -adatbázis létrehozása a Terraform használatával

Egyetlen adatbázis létrehozása a leggyorsabb és legegyszerűbb lehetőség adatbázis létrehozásához Azure SQL Database-ben. Ez a rövid útmutató bemutatja, hogyan hozhat létre egyetlen adatbázist a Terraform használatával.

A Terraform lehetővé teszi a felhőinfrastruktúra definícióját, előzetes verzióját és üzembe helyezését. A Terraform használatával konfigurációs fájlokat hozhat létre a HCL szintaxisával. A HCL szintaxisa lehetővé teszi a felhőszolgáltató – például az Azure – és a felhőinfrastruktúrát alkotó elemek megadását. A konfigurációs fájlok létrehozása után létrehoz egy végrehajtási tervet , amely lehetővé teszi az infrastruktúra módosításainak előzetes megtekintését az üzembe helyezés előtt. A módosítások ellenőrzése után alkalmazza a végrehajtási tervet az infrastruktúra üzembe helyezésére.

Ebben a cikkben az alábbiakkal ismerkedhet meg:

Előfeltételek

A Terraform-kód implementálása

  1. Hozzon létre egy könyvtárat, amelyben tesztelheti és futtathatja a Terraform-mintakódot, és az aktuális könyvtárvá teheti.

  2. Hozzon létre egy nevű providers.tf fájlt, és szúrja be a következő kódot:

    terraform {
      required_version = ">=1.0"
      required_providers {
        azurerm = {
          source  = "hashicorp/azurerm"
          version = "~>3.0"
        }
        random = {
          source  = "hashicorp/random"
          version = "~>3.0"
        }
      }
    }
    provider "azurerm" {
      features {}
    }
    
  3. Hozzon létre egy nevű main.tf fájlt, és szúrja be a következő kódot:

    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
    }
    
  4. Hozzon létre egy nevű variables.tf fájlt, és szúrja be a következő kódot:

    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
    }
    
  5. Hozzon létre egy nevű outputs.tf fájlt, és szúrja be a következő kódot:

    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
    }
    

A Terraform inicializálása

Futtassa a Terraform init parancsot a Terraform üzembe helyezésének inicializálásához. Ez a parancs letölti az Azure-erőforrások kezeléséhez szükséges Azure-szolgáltatót.

terraform init -upgrade

Főbb pontok:

  • A -upgrade paraméter frissíti a szükséges szolgáltatói beépülő modulokat a legújabb verzióra, amely megfelel a konfiguráció verziókorlátozásainak.

Terraform végrehajtási terv létrehozása

Végrehajtási terv létrehozásához futtassa a Terraform-tervet .

terraform plan -out main.tfplan

Főbb pontok:

  • A terraform plan parancs létrehoz egy végrehajtási tervet, de nem hajtja végre. Ehelyett meghatározza, hogy milyen műveletek szükségesek a konfigurációs fájlokban megadott konfiguráció létrehozásához. Ez a minta lehetővé teszi annak ellenőrzését, hogy a végrehajtási terv megfelel-e az elvárásainak, mielőtt módosításokat végez a tényleges erőforrásokon.
  • A választható -out paraméter lehetővé teszi a terv kimeneti fájljának megadását. -out A paraméter használatával biztosítható, hogy az ön által áttekintett csomag pontosan az, amit alkalmaz.
  • A végrehajtási tervek és a biztonság megőrzésével kapcsolatos további információkért tekintse meg a biztonsági figyelmeztetések szakaszt.

Terraform végrehajtási terv alkalmazása

A terraform alkalmazás futtatásával alkalmazza a végrehajtási tervet a felhőinfrastruktúrára.

terraform apply main.tfplan

Főbb pontok:

  • A példaparancs terraform apply feltételezi, hogy korábban futtatta a parancsot terraform plan -out main.tfplan.
  • Ha másik fájlnevet adott meg a -out paraméterhez, használja ugyanazt a fájlnevet a hívásban terraform apply.
  • Ha nem használta a paramétert -out , hívjon terraform apply paraméterek nélkül.

Az eredmények ellenőrzése

  1. Kérje le az Azure-erőforráscsoport nevét.

    resource_group_name=$(terraform output -raw resource_group_name)
    
  2. Szerezze be az új logikai kiszolgáló nevét.

    sql_server_name=$(terraform output -raw sql_server_name)
    
  3. Futtassa az az sql db listát a kiszolgálón található összes adatbázis nevének megjelenítéséhez.

    az sql db list \
    --resource-group $resource_group_name \
    --server $sql_server_name \
    --output table
    

Az erőforrások eltávolítása

Ha már nincs szüksége a Terraformon keresztül létrehozott erőforrásokra, hajtsa végre az alábbi lépéseket:

  1. Futtassa a Terraform-tervet , és adja meg a jelzőt destroy .

    terraform plan -destroy -out main.destroy.tfplan
    

    Főbb pontok:

    • A terraform plan parancs létrehoz egy végrehajtási tervet, de nem hajtja végre. Ehelyett meghatározza, hogy milyen műveletek szükségesek a konfigurációs fájlokban megadott konfiguráció létrehozásához. Ez a minta lehetővé teszi annak ellenőrzését, hogy a végrehajtási terv megfelel-e az elvárásainak, mielőtt módosításokat végez a tényleges erőforrásokon.
    • A választható -out paraméter lehetővé teszi a terv kimeneti fájljának megadását. -out A paraméter használatával biztosítható, hogy az ön által áttekintett csomag pontosan az, amit alkalmaz.
    • A végrehajtási tervek és a biztonság megőrzésével kapcsolatos további információkért tekintse meg a biztonsági figyelmeztetések szakaszt.
  2. Futtassa a terraform apply parancsot a végrehajtási terv alkalmazásához.

    terraform apply main.destroy.tfplan
    

A Terraform hibaelhárítása az Azure-ban

A Terraform Azure-on való használatakor felmerülő gyakori problémák elhárítása

Következő lépések