Snabbstart: Använda Terraform för att skapa ett Azure Recovery Services-valv

I den här snabbstarten lär du dig hur du använder Terraform för att skapa en Azure-resursgrupp, ett Azure Recovery Services-valv och en säkerhetskopieringsprincip för att dela filer i Azure. Azure Site Recovery-tjänsten kan hjälpa dina företagsprogram att hålla sig online under planerade och oplanerade avbrott. Specifikt använder Site Recovery replikering, överslag och återställning för att hantera lokala datorer och virtuella Azure-maskiner under katastrofåterställning. Dessa Site Recovery-metoder kan bidra till din strategi för affärskontinuitet och haveriberedskap.

Ett Azure Recovery Services-valv är en lagringsentitet i Azure som innehåller data som säkerhetskopior och återställningspunkter som kan skydda och hantera dina data. Du skapar valvet först och sedan säkerhetskopieringsprincipen för delning av filer, som anger när och hur ofta säkerhetskopieringar ska ske, plus kvarhållningsperioden. Den här konfigurationen kan bidra till att säkerställa att dina data säkerhetskopieras konsekvent och enkelt kan återställas om det behövs.

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 ändringarna i infrastrukturen innan de distribueras. När du har verifierat ändringarna tillämpar du exekveringsplanen för att distribuera infrastrukturen.

  • Skapa en Azure-resursgrupp med ett unikt namn.
  • Definiera lokala variabler för SKU-namnet och nivån.
  • Skapa ett Azure Recovery Services-valv i resursgruppen.
  • Skapa en säkerhetskopieringsprincip för att dela filer i resursgruppen.
  • Mata ut namnen på Recovery Services-valvet och säkerhetskopieringsprincipen för delning av filer.

Förutsättningar

Implementera Terraform-koden

Kommentar

Exempelkoden för den här artikeln finns på 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.

  1. Skapa en katalog där du kan testa och köra Terraform-exempelkoden och göra den till den aktuella katalogen.

  2. Skapa en fil med namnet main.tfoch infoga följande kod:

    # Create Resource Group
    resource "random_pet" "rg_name" {
      prefix = var.resource_group_name_prefix
    }
    
    resource "azurerm_resource_group" "rg" {
      location = var.resource_group_location
      name     = random_pet.rg_name.id
    }
    
    locals {
      skuName = "RS0"
      skuTier = "Standard"
    }
    
    # Create Recovery Services Vault
    resource "azurerm_recovery_services_vault" "vault" {
      name                = var.vaultName
      location            = azurerm_resource_group.rg.location
      resource_group_name = azurerm_resource_group.rg.name
      sku                 = local.skuName
    }
    
    # Create Backup Policy for File Share
    resource "azurerm_backup_policy_file_share" "policy" {
      name                = "vaultstorageconfig"
      resource_group_name = azurerm_resource_group.rg.name
      recovery_vault_name = azurerm_recovery_services_vault.vault.name
    
      backup {
        frequency = "Daily"
        time      = "23:00"
      }
    
      retention_daily {
        count = 10
      }
    }
    
  3. Skapa en fil med namnet outputs.tfoch infoga följande kod:

    output "recovery_services_vault_name" {
      value = azurerm_recovery_services_vault.vault.name
    }
    
    output "backup_policy_file_share_name" {
      value = azurerm_backup_policy_file_share.policy.name
    }
    
  4. Skapa en fil med namnet providers.tfoch infoga följande kod:

    terraform {
      required_providers {
        azurerm = {
          source  = "hashicorp/azurerm"
          version = "~>3.0"
        }
        random = {
          source  = "hashicorp/random"
          version = "~>3.0"
        }
      }
    }
    
    provider "azurerm" {
      features {}
    }
    
  5. Skapa en fil med namnet variables.tfoch infoga följande kod:

    variable "resource_group_location" {
      type        = string
      default     = "eastus"
      description = "Location of the resource group."
    }
    
    variable "resource_group_name_prefix" {
      type        = string
      default     = "rg"
      description = "Prefix of the resource group name that's combined with a random ID so name is unique in your Azure subscription."
    }
    
    variable "vaultName" {
      description = "Name of the Recovery Services Vault."
      type        = string
      default     = "examplevault"
    }
    

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 plan för att skapa en exekveringsplan.

terraform plan -out main.tfplan

Viktiga punkter:

  • Kommandot terraform plan skapar en utförandeplan, men utför den inte. I stället avgör den vilka åtgärder som krävs för att skapa den konfiguration som anges i konfigurationsfilerna. Med det här mönstret kan du kontrollera om körplanen matchar dina förväntningar innan du gör några ändringar i de verkliga resurserna.
  • Med den valfria -out parametern kan du ange en utdatafil för planen. Med hjälp av parametern -out ser du till att planen du granskade är exakt vad som tillämpas.

Tillämpa en Terraform-körningsplan

Kör terraform apply för att tillämpa utförandeplanen på din molninfrastruktur.

terraform apply main.tfplan

Viktiga punkter:

  • terraform apply Exempelkommandot förutsätter att du tidigare körde terraform plan -out main.tfplan.
  • Om du har angett ett annat filnamn för parametern -out använder du samma filnamn i anropet till terraform apply.
  • Om du inte använde parametern -out anropar terraform apply du utan några parametrar.

Verifiera resultatet

  1. Hämta namnet på Azure-resursgruppen.

    resource_group_name=$(terraform output -raw resource_group_name)
    
  2. Hämta namnet på Azure Recovery Services-valvet.

    recovery_services_vault_name=$(terraform output -recovery_services_vault_name)
    
  3. Hämta namnet på filresursdelningen i Azure Recovery Services-valvets säkerhetskopieringspolicy.

    backup_policy_file_share_name=$(terraform output -backup_policy_file_share_name)
    
  4. Kör az backup vault show för att visa Azure Recovery Services-valvet.

    az backup vault show --name $recovery_services_vault_name --resource group $resource_group_name
    

Rensa resurser

Gör följande när du inte längre behöver de resurser som skapats via Terraform:

  1. Kör terraform plan och specificera destroy flaggan.

    terraform plan -destroy -out main.destroy.tfplan
    

    Viktiga punkter:

    • Kommandot terraform plan skapar en utförandeplan, men utför den inte. I stället avgör den vilka åtgärder som krävs för att skapa den konfiguration som anges i konfigurationsfilerna. Med det här mönstret kan du kontrollera om körplanen matchar dina förväntningar innan du gör några ändringar i de verkliga resurserna.
    • Med den valfria -out parametern kan du ange en utdatafil för planen. Med hjälp av parametern -out ser du till att planen du granskade är exakt vad som tillämpas.
  2. Kör terraform apply för att tillämpa genomförandeplanen.

    terraform apply main.destroy.tfplan
    

Felsöka Terraform i Azure

Felsöka vanliga problem när du använder Terraform i Azure.

Nästa steg