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.
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
- A
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`
Terraform init futtatása.
terraform init --upgrade
Terraform-terv futtatása.
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
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: