Condividi tramite


Guida introduttiva: Usare Terraform per creare un insieme di credenziali di Servizi di ripristino di Azure

Questo argomento di avvio rapido illustra come usare Terraform per creare un gruppo di risorse di Azure, un insieme di credenziali di Servizi di ripristino di Azure e un criterio di backup per condividere file in Azure. Il servizio Azure Site Recovery consente alle applicazioni aziendali di rimanere online durante interruzioni pianificate e non pianificate. In particolare, Site Recovery usa la replica, il failover e il ripristino per gestire le macchine locali e le macchine virtuali di Azure durante il ripristino di emergenza. Questi metodi di Site Recovery possono contribuire alla strategia di continuità aziendale e ripristino di emergenza.

Un insieme di credenziali di Servizi di ripristino di Azure è un'entità di archiviazione in Azure che ospita dati quali backup e punti di ripristino in grado di proteggere e gestire i dati. Creare prima l'insieme di credenziali e quindi i criteri di backup per la condivisione dei file, che specifica quando e con quale frequenza devono essere eseguiti i backup, oltre al periodo di conservazione. Questa configurazione consente di garantire che il backup dei dati venga eseguito in modo coerente e che possa essere facilmente ripristinato, se necessario.

Terraform abilita la definizione, l'anteprima e la distribuzione dell'infrastruttura cloud. Con Terraform si creano file di configurazione usando la sintassi HCL. La sintassi HCL consente di specificare il provider di servizi cloud, ad esempio Azure, e gli elementi che costituiscono l'infrastruttura cloud. Dopo aver creato i file di configurazione, si crea un piano di esecuzione che consente di visualizzare in anteprima le modifiche dell'infrastruttura prima della distribuzione. Dopo aver verificato le modifiche, è possibile applicare il piano di esecuzione per distribuire l'infrastruttura.

  • Creare un gruppo di risorse di Azure con un nome univoco.
  • Definire le variabili locali per il nome e il livello dello SKU.
  • Creare un insieme di credenziali di Servizi di ripristino di Azure nel gruppo di risorse.
  • Creare un criterio di backup per condividere i file nel gruppo di risorse.
  • Restituisce i nomi dell'insieme di credenziali di Servizi di ripristino e i criteri di backup per la condivisione dei file.

Prerequisiti

Implementare il codice Terraform

  1. Creare una directory in cui testare ed eseguire il codice Terraform di esempio e impostarla come directory corrente.

  2. Creare un file denominato main.tfe immettere il codice seguente:

    # 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. Creare un file denominato outputs.tfe immettere il codice seguente:

    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. Creare un file denominato providers.tfe immettere il codice seguente:

    terraform {
      required_providers {
        azurerm = {
          source  = "hashicorp/azurerm"
          version = "~>3.0"
        }
        random = {
          source  = "hashicorp/random"
          version = "~>3.0"
        }
      }
    }
    
    provider "azurerm" {
      features {}
    }
    
  5. Creare un file denominato variables.tfe immettere il codice seguente:

    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"
    }
    

Inizializzare Terraform

Eseguire terraform init per inizializzare la distribuzione di Terraform. Questo comando scarica il provider di Azure necessario per gestire le risorse di Azure.

terraform init -upgrade

Punti chiave:

  • Il parametro -upgrade aggiorna i plug-in del provider necessari alla versione più recente conforme ai vincoli di versione della configurazione.

Creare un piano di esecuzione Terraform

Eseguire terraform plan per creare un piano di esecuzione.

terraform plan -out main.tfplan

Punti chiave:

  • Il comando terraform plan consente di creare un piano di esecuzione, ma non di eseguirlo. Determina invece le azioni necessarie per creare la configurazione specificata nei file di configurazione. Questo modello consente di verificare se il piano di esecuzione corrisponde alle aspettative prima di apportare modifiche alle risorse effettive.
  • Il parametro -out facoltativo consente di specificare un file di output per il piano. L'uso del parametro -out garantisce che il piano esaminato sia esattamente quello che viene applicato.

Applicare un piano di esecuzione Terraform

Eseguire terraform apply per applicare il piano di esecuzione all'infrastruttura cloud.

terraform apply main.tfplan

Punti chiave:

  • Il comando terraform apply di esempio presuppone che in precedenza sia stato eseguito terraform plan -out main.tfplan.
  • Se è stato specificato un nome file diverso per il parametro -out, usare lo stesso nome file nella chiamata a terraform apply.
  • Se non è stato usato il parametro -out, chiamare terraform apply senza parametri.

Verificare i risultati

  1. Ottenere il nome del gruppo di risorse di Azure.

    resource_group_name=$(terraform output -raw resource_group_name)
    
  2. Ottenere il nome dell'insieme di credenziali di Servizi di ripristino di Azure.

    recovery_services_vault_name=$(terraform output -recovery_services_vault_name)
    
  3. Ottenere il nome della condivisione file dei criteri di backup dell'insieme di credenziali di Servizi di ripristino di Azure.

    backup_policy_file_share_name=$(terraform output -backup_policy_file_share_name)
    
  4. Eseguire az backup vault show per visualizzare l'insieme di credenziali di Servizi di ripristino di Azure.

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

Pulire le risorse

Quando le risorse create tramite Terraform non sono più necessarie, eseguire i passaggi seguenti:

  1. Esegui terraform plan e specifica il flag destroy.

    terraform plan -destroy -out main.destroy.tfplan
    

    Punti chiave:

    • Il comando terraform plan consente di creare un piano di esecuzione, ma non di eseguirlo. Determina invece le azioni necessarie per creare la configurazione specificata nei file di configurazione. Questo modello consente di verificare se il piano di esecuzione corrisponde alle aspettative prima di apportare modifiche alle risorse effettive.
    • Il parametro -out facoltativo consente di specificare un file di output per il piano. L'uso del parametro -out garantisce che il piano esaminato sia esattamente quello che viene applicato.
  2. Eseguire terraform apply per applicare il piano di esecuzione.

    terraform apply main.destroy.tfplan
    

Risolvere i problemi di Terraform in Azure

Risolvere i problemi comuni relativi all'uso di Terraform in Azure.

Passaggi successivi