Comparteix a través de


Inicio rápido: uso de Terraform para crear un almacén de Azure Recovery Services

En este inicio rápido, aprenderá a usar Terraform para crear un grupo de recursos de Azure, un almacén de Azure Recovery Services y una directiva de copia de seguridad para compartir archivos en Azure. El servicio Azure Site Recovery puede ayudar a las aplicaciones empresariales a mantenerse en línea durante interrupciones planeadas y no planeadas. En concreto, Site Recovery usa la replicación, la conmutación por error y la recuperación para administrar máquinas locales y máquinas virtuales de Azure durante la recuperación ante desastres. Estos métodos de Site Recovery pueden contribuir a su estrategia de continuidad empresarial y recuperación ante desastres.

Un almacén de Azure Recovery Services es una entidad de almacenamiento en Azure que alberga datos como copias de seguridad y puntos de recuperación que pueden proteger y administrar los datos. Primero se crea el almacén y, a continuación, la directiva de copia de seguridad para compartir archivos, que especifica cuándo y con qué frecuencia deben producirse copias de seguridad, además del período de retención. Esta configuración puede ayudar a garantizar que los datos se realicen de forma coherente y se puedan restaurar fácilmente si es necesario.

Terraform habilita la definición, vista previa e implementación de la infraestructura en la nube. Con Terraform, se crean archivos de configuración mediante la sintaxis de HCL. La sintaxis de HCL permite especificar el proveedor de la nube, como Azure, y los elementos que componen la infraestructura de la nube. Después de crear los archivos de configuración, se crea un plan de ejecución que permite obtener una vista previa de los cambios de infraestructura antes de implementarlos. Una vez que compruebe los cambios, aplique el plan de ejecución para implementar la infraestructura.

  • Cree un grupo de recursos de Azure con un nombre único.
  • Defina variables locales para el nombre y el nivel de la SKU.
  • Cree un almacén de Azure Recovery Services en el grupo de recursos.
  • Cree una directiva de copia de seguridad para compartir archivos en el grupo de recursos.
  • Genera los nombres del almacén de Recovery Services y la directiva de copia de seguridad para compartir archivos.

Requisitos previos

Implementación del código de Terraform

  1. Cree un directorio en el que probar y ejecutar el código de ejemplo de Terraform y conviértalo en el directorio actual.

  2. Cree un archivo llamado main.tf e inserte el siguiente código:

    # 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. Cree un archivo llamado outputs.tf e inserte el siguiente código:

    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. Cree un archivo llamado providers.tf e inserte el siguiente código:

    terraform {
      required_providers {
        azurerm = {
          source  = "hashicorp/azurerm"
          version = "~>3.0"
        }
        random = {
          source  = "hashicorp/random"
          version = "~>3.0"
        }
      }
    }
    
    provider "azurerm" {
      features {}
    }
    
  5. Cree un archivo llamado variables.tf e inserte el siguiente código:

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

Inicialización de Terraform

Para inicializar la implementación de Terraform, ejecute terraform init. Este comando descarga el proveedor de Azure necesario para administrar los recursos de Azure.

terraform init -upgrade

Puntos clave:

  • El parámetro -upgrade actualiza los complementos de proveedor necesarios a la versión más reciente que cumpla con las restricciones de versión de la configuración.

Creación de un plan de ejecución de Terraform

Ejecute terraform plan para crear un plan de ejecución.

terraform plan -out main.tfplan

Puntos clave:

  • El comando terraform plan crea un plan de ejecución, pero no lo ejecuta. En su lugar, determina qué acciones son necesarias para crear la configuración especificada en los archivos de configuración. Este patrón le permite comprobar si el plan de ejecución coincide con sus expectativas antes de realizar cambios en los recursos reales.
  • El parámetro -out opcional permite especificar un archivo de salida para el plan. El uso del parámetro -out garantiza que el plan que ha revisado es exactamente lo que se aplica.

Aplicación de un plan de ejecución de Terraform

Ejecute terraform apply para aplicar el plan de ejecución a su infraestructura en la nube.

terraform apply main.tfplan

Puntos clave:

  • El comando terraform apply de ejemplo asume que ejecutó terraform plan -out main.tfplan previamente.
  • Si especificó un nombre de archivo diferente para el parámetro -out, use ese mismo nombre de archivo en la llamada a terraform apply.
  • Si no ha utilizado el parámetro -out, llame a terraform apply sin ningún parámetro.

Verificación de los resultados

  1. Obtenga el nombre del grupo de recursos de Azure.

    resource_group_name=$(terraform output -raw resource_group_name)
    
  2. Obtenga el nombre del almacén de Azure Recovery Services.

    recovery_services_vault_name=$(terraform output -recovery_services_vault_name)
    
  3. Obtenga el nombre del recurso compartido de archivos de la directiva de copia de seguridad del almacén de Azure Recovery Services.

    backup_policy_file_share_name=$(terraform output -backup_policy_file_share_name)
    
  4. Ejecute az backup vault show para ver el almacén de Azure Recovery Services.

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

Limpieza de recursos

Cuando ya no necesite los recursos creados a través de Terraform, realice los pasos siguientes:

  1. Ejecute el comando terraform plan y especifique la marca destroy.

    terraform plan -destroy -out main.destroy.tfplan
    

    Puntos clave:

    • El comando terraform plan crea un plan de ejecución, pero no lo ejecuta. En su lugar, determina qué acciones son necesarias para crear la configuración especificada en los archivos de configuración. Este patrón le permite comprobar si el plan de ejecución coincide con sus expectativas antes de realizar cambios en los recursos reales.
    • El parámetro -out opcional permite especificar un archivo de salida para el plan. El uso del parámetro -out garantiza que el plan que ha revisado es exactamente lo que se aplica.
  2. Ejecute terraform apply para aplicar el plan de ejecución.

    terraform apply main.destroy.tfplan
    

Solución de problemas de Terraform en Azure

Solución de problemas comunes al usar Terraform en Azure.

Pasos siguientes