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

A következőkre vonatkozik:Azure SQL Database

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

Terraform lehetővé teszi a felhőinfrastruktúra definícióját, előnézetét és üzembe helyezését. A Terraform használatával konfigurációs fájlokat hozhat létre HCL-szintaxissal. A HCL szintaxissal megadhatja a felhőszolgáltatót – például az Azure-t – és a felhőinfrastruktúra elemeit. 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 változá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.

Ebből a cikkből megtudhatja, hogyan:

Előfeltételek

Megjegyzés:

Néhány konfigurációs beállítást nem lehet megváltoztatni, miután létrehoztad az adatbázist. Nézd át a módosítható konfigurációs hivatkozást a telepítés előtt.

Engedélyek

Adatbázisok Transact-SQL-keresztül történő létrehozásához: CREATE DATABASE engedélyek szükségesek. Adatbázis létrehozásához a bejelentkezésnek vagy a kiszolgáló rendszergazdai bejelentkezésének kell lennie (amely az Azure SQL Database logikai kiszolgáló kiépítésekor lett létrehozva), a kiszolgáló Microsoft Entra rendszergazdájának, a dbmanager adatbázis-szerepkör tagjának master. További információért lásd a(z) CREATE DATABASE.

Adatbázisok létrehozásához az Azure Portalon, a PowerShellen, az Azure CLI-en vagy a REST API-keresztül: Azure RBAC-engedélyekre van szükség, különösen közreműködői, SQL DB-közreműködői vagy SQL Server-közreműködői Azure RBAC-szerepkörre. További információ: Azure RBAC beépített szerepkörei.

A Terraform-kód implementálása

Megjegyzés:

A cikk mintakódja az Azure Terraform GitHub-adattárban található. Megtekintheti a Terraform aktuális és korábbi verzióinak teszteredményeit tartalmazó naplófájlt.

További cikkek és mintakód, amelyek bemutatják, hogyan használható a Terraform az Azure-erőforrások kezelésére

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

  2. Hozzon létre egy providers.tf nevű 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 main.tf nevű 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
    }
    

    Fontos

    Ne adjon meg személyes, érzékeny vagy bizalmas adatokat a kiszolgáló rendszergazdai bejelentkezési név mezőjében. Az ebben a mezőben megadott adatok nem tekinthetők ügyféladatoknak.

  4. Hozzon létre egy variables.tf nevű 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 outputs.tf nevű 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
    }
    

Inicializálja a Terraformot

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ítanák a tényleges erőforrásokat.
  • Az opcionális -out paraméter lehetővé teszi a terv kimeneti fájljának megadását. A -out paraméter használatával biztosítható, hogy az ön által áttekintett terv pontosan az alkalmazott legyen.

A Terraform végrehajtási terv alkalmazása

Használja a terraform apply parancsot a végrehajtási terv felhőinfrastruktúrára való alkalmazásához.

terraform apply main.tfplan

Főbb pontok:

  • A példaparancs terraform apply feltételezi, hogy korábban lefuttattad a terraform plan -out main.tfplan parancsot.
  • Ha másik fájlnevet adott meg a -out paraméterhez, használja ugyanazt a fájlnevet a terraform applyhívásában.
  • Ha nem használta a -out paramétert, hívja meg a 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 sql db-listát a kiszolgáló összes adatbázisának nevének megjelenítéséhez.

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

Erőforrások tisztí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. Csinálja meg a terraform plan parancsot, és adja meg a destroy jelzőt.

    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ítanák a tényleges erőforrásokat.
    • Az opcionális -out paraméter lehetővé teszi a terv kimeneti fájljának megadását. A -out paraméter használatával biztosítható, hogy az ön által áttekintett terv pontosan az alkalmazott legyen.
  2. A végrehajtási terv alkalmazásához futtassa a terraform apply parancsot.

    terraform apply main.destroy.tfplan
    

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

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

Következő lépés