Megosztás a következőn keresztül:


Az Azure Export for Terraform használata speciális helyzetekben

Ez a cikk bemutatja, hogyan végezhet el néhány fejlettebb feladatot az Azure Export for Terraform használatával.

  • Erőforrások hozzáfűzése meglévő Terraform-környezetekhez.
  • Erőforrások exportálása meglévő Terraform-környezetbe távoli háttérállapottal

Hozzáfűzés meglévő erőforrásokhoz

Alapértelmezés szerint az Azure Export for Terraform biztosítja, hogy a kimeneti könyvtár üres legyen a meglévő felhasználói fájlokkal való ütközések elkerülése érdekében. Ha erőforrásokat szeretne importálni egy meglévő állapotfájlba, adja hozzá a jelölőt --append .

aztfexport [command] --append <scope>

A jelölő megadásakor az --append Azure Export for Terraform ellenőrzi, hogy az aktuális könyvtárban lévő fájlokban van-e már meglévő provider vagy terraform blokk. Ha nem, az eszköz minden blokkhoz létrehoz egy fájlt, majd folytatja az exportálást. Ha a kimeneti könyvtár rendelkezik állapotfájllal, a rendszer importálja az exportált erőforrásokat az állapotfájlba.

Emellett a létrehozott fájl utótagja a bővítmény előtt van .aztfexport – például main.aztfexport.tf – a lehetséges fájlnévütközések elkerülése érdekében.

Ha többször futtatja a parancsot aztfexport --append , a parancs minden futtatásakor létrejön egy fájlhoz main.aztfexport.tf fűzött exportálási eredmény.

Saját Terraform-konfiguráció használata

Alapértelmezés szerint az Azure Export for Terraform egy helyi háttérrendszerrel tárolja az állapotfájlt. Azonban távoli háttérrendszert is használhat. Az Azure Export for Terraform lehetővé teszi a saját terraform vagy provider a blokkok átadását.

Definiálja ezeket a blokkokat egy .tf fájlban a célkönyvtárban, exportálja a --append jelölővel, és a konfiguráció exportálja a megadott háttér- és szolgáltatóverziót (ha meg van adva).

Fontos

Ha az AzureRM megadott verziója nem egyezik meg a telepített verzióval exportáláskor, a parancs meghiúsul.

Azure Storage-példa

Ez a példa a Terraform-állapot tárolása az Azure Storage-ban című cikkben található.

terraform {
  required_providers {
    azurerm = {
      source  = "hashicorp/azurerm"
      version = "~>3.0"
    }
  }
    backend "azurerm" {
        resource_group_name  = "tfstate"
        storage_account_name = "storageacc"
        container_name       = "tfstate"
        key                  = "terraform.tfstate"
    }

}

provider "azurerm" {
  features {}
}

Terraform Cloud-példa

terraform {
  cloud {
    organization = "aztfexport-test"
    workspaces {
      name = "aztfexport-playground"
    }
  }
  required_providers {
    azurerm = {
      source = "hashicorp/azurerm"
      version = "~>3.0"
    }
  }
}
provider "azurerm" {
  features {
  }
}

Beágyazott felület

Ha háttérbeli beágyazott fájlba szeretne exportálni, használja a --backend-type beállításokat.--backend-config A Terraform háttérrendszer konfigurálásával kapcsolatos további információkért lásd a Terraform háttérrendszer konfigurációját.

Az Azure Storage-fiók példáját használva az Alábbiakra van szüksége az AzureRM háttérrendszer dokumentációjában meghatározottak szerint.

  • Resource group name
  • Storage account name
  • Tároló neve

Adja át ezeket a paramétereket a parancsnak a háttértípussal együtt:

aztfexport [subcommand] --backend-type=azurerm \
                        --backend-config=resource_group_name=<resource group name> \
                        --backend-config=storage_account_name=<account name> \
                        --backend-config=container_name=<container name> \
                        --backend-config=key=terraform.tfstate 

Főbb pontok:

  • Az előző példában a Unix sor folytatása karaktert használom, hogy a kód jól jelenjen meg a böngészőben. Előfordulhat, hogy módosítania kell ezeket a karaktereket a parancssori környezetnek ( például a PowerShellnek ) megfelelően, vagy egy sorra kell egyesítenie a parancsot.
  • Ha a háttérállapot már létezik, az Azure Export for Terraform automatikusan egyesíti az új erőforrásokat a meglévő állapottal. A beállítást nem kell beágyazott módon megadnia --append .

Azure-erőforrások exportálása meglévő Terraform-környezetbe

Most rakjuk össze az egészet! Képzelje el, hogy új erőforrások jöttek létre a Terraformon kívül, amelyeket át kell helyezni a Terraform-kezelésbe. A szakasz befejezéséhez győződjön meg arról, hogy a háttérrendszer konfigurálva van. Ez az oktatóanyag ugyanazt a konfigurációt használja, amely az Azure Storage távoli állapotának oktatóanyagában van megadva.

  1. Futtassa a következő parancsot annak a szülőkönyvtárnak a szülőkönyvtárában, ahol létre szeretné hozni az ideiglenes könyvtárat:

    aztfexport resource -o tempdir --hcl-only <resource_id>
    

    Főbb pontok:

    • A -o jelölő megadja a könyvtár létrehozását, ha az nem létezik.
    • A --hcl-only jelölő a konfigurált erőforrások HCL-be való exportálását határozza meg
  2. Miután megvizsgálta, hogy az erőforrás hozzáfűzhető-e, használja a létrehozott leképezési fájlt és a --append jelzőt annak biztosítására, hogy az Azure Export tiszteletben tartsa a meglévő környezetünkben meglévő távoli állapotot és szolgáltatói verziókat:

    aztfexport map --append `./tempdir/aztfexportResourceMapping.json`
    
  3. Terraform init futtatása.

    terraform init --upgrade
    
  4. Terraform-terv futtatása.

  5. A Terraformhoz készült Azure Export nem jeleníthet meg módosításokat.

Gratulálunk! Az infrastruktúra és annak megfelelő állapota sikeresen hozzá lett fűzve a Terraform-környezethez.

Ha a csomag problémákba ütközik, tekintse meg az Azure Export for Terraform alapelveit a kód által létrehozott --hcl-onlyüzembe helyezésre vonatkozó korlátozások megértéséhez. Ha ez a cikk nem segít, nyisson meg egy GitHub-problémát.

További lépések