Jak funguje Azure Export pro Terraform

Tento článek vás seznámí s pracovními postupy Azure Exportu pro Terraform . V tomto článku se dozvíte o osvědčených postupech nástroje, aktuálních omezeních a o tom, jak tato omezení zmírnit.

Interaktivní režim

Ve výchozím nastavení běží Azure Export pro Terraform v interaktivním režimu. Když spustíte interaktivní režim, zobrazí se v dolní části displeje dostupné klávesové zkratky.

Úloha Klávesové zkratky
Navigace
V seznamu prostředků vyberte předchozí položku. -nebo- k
V seznamu prostředků vyberte další položku. -or- j
Přechod na předchozí stránku v seznamu prostředků ← -or- h -or- Page Up
Přechod na další stránku v seznamu prostředků → -nebo- l -or- Page Down
Přejděte na začátek seznamu prostředků. g -or- Home
Přejděte na konec seznamu prostředků. G -or- End
Výběr prostředků, které chcete přeskočit
Přeskočit prostředek (nebo zrušit jeho vynechání, pokud je označený jako Přeskočit) Odstranění
Operace filtrování
Definujte filtr podle textu v seznamu prostředků. /
Vymazání libovolného aktuálního filtru Esc
Operace ukládání
Uložte soubor mapování seznamu prostředků. Výstupní soubor je ovlivněn přeskočením (ale ne filtrováním). s
Exportujte prostředky do stavu (pokud --hcl-only není zadáno) a vygenerujte konfiguraci. W
Uživatelské prostředí
Zobrazení doporučení pro aktuální prostředek R
Zobrazí chyby exportu prostředků (pokud existuje). E
Zobrazit nápovědu. ?
Ukončete
Ukončete interaktivní režim. Q

Pro každý prostředek se Azure Export for Terraform pokusí rozpoznat odpovídající typ prostředku Terraform. Pokud najde shodu, je řádek označen následujícím indikátorem: 💡.

Pokud se prostředek nedá přeložit, musíte zadat adresu prostředku Terraformu v následujícím formátu: <resource type>.<resource name> Například azurerm_linux_virtual_machine.test odkazuje na typ prostředku Terraform azurerm_linux_virtual_machine, zatímco test odkazuje na název virtuálního počítače použitého v konfiguračních souborech.

Pokud chcete zobrazit dostupné typy prostředků pro vybraný prostředek, stiskněte klávesu r.

V některých případech existují prostředky Azure, které nemají odpovídající prostředky Terraformu, například pokud prostředek nemá podporu Terraformu. Některé prostředky se také můžou vytvořit jako vedlejší účinek zřizování jiného prostředku, například prostředku disku s operačním systémem, který se vytvoří při zřizování virtuálního počítače. V těchto případech můžete prostředky přeskočit bez přiřazení čehokoli.

Po dokončení importu všech prostředků stiskněte klávesu w a začněte generovat konfiguraci Terraformu a (pokud --hcl-only není vybráno) import do stavu Terraformu.

Neinteraktivní režim

Ve výchozím nastavení běží Azure Export pro Terraform v interaktivním režimu. Pokud chcete určit, že se má nástroj spustit v neinteraktivním režimu, zadejte --non-interactive příznak.

aztfexport [command] --non-interactive <scope>

Důležité

Pokud adresář, ve kterém používáte Azure Export for Terraform, není prázdný, musíte k použití příznaku --hcl-only přidat --overwrite příznak.

Osvědčené postupy pro základní pracovní postupy

Na základní úrovni čelí každý uživatel služby Azure Export rozhodnutí mezi dvěma možnostmi:

Následující pododdíly poskytují pokyny k tomu, jakou možnost na základě scénáře použít.

Správa infrastruktury

Možná nebudete muset exportovat do stavu, pokud jste neověřili, že se nakonfigurované prostředky chovají v rámci vašeho prostředí požadovaným způsobem.

Pokud si opravdu přejete spravovat sadu prostředků v Terraformu pomocí terraform init plan apply pracovních postupů, je export do stavu nezbytný.

Pokud si nejste jistí, že ještě chcete spravovat prostředky, doporučuje se předat --hcl-only příznak.

Existující infrastruktura

Ve scénářích, ve kterých exportujete do existujících prostředí Terraformu, může být užitečné si představit --hcl-onlyjako ekvivalent plánu terraformu, zejména před připojením k existujícím prostředím.

Příkaz terraform apply se rovná exportu prostředků – během kterých se jejich konfigurace spojuje do existujícího stavu. V tomto scénáři při použití souboru mapování ušetříte čas spuštění pro výpis a mapování prostředků.

Zjišťování infrastruktury

Pokud si nejste jistí, jaké prostředky v prostředí existují, můžete to ověřit zadáním příznaku --generate-mapping-file . Další informace o tomto předmětu najdete v tématu Zkoumání přizpůsobeného výběru prostředků a pojmenování pomocí služby Azure Export pro Terraform.

Omezení

Azure Export for Terraform je složitý nástroj, který se pokouší převést infrastrukturu Azure na kód a stav Terraformu. Jeho aktuální známá omezení jsou vysvětlena v následujících pododdílech.

Vlastnosti jen pro zápis

Některé vlastnosti v rámci AzureRM jsou jen pro zápis a nejsou zahrnuty do vygenerovaného kódu, který Azure Export pro Terraform vytvoří. Problém je vyřešen definováním vlastnosti po exportu do kódu HCL.

Omezení mezi vlastnostmi

Zprostředkovatel AzureRM může nastavit dvě vlastnosti, které jsou vzájemně v konfliktu. Když Azure Export pro Terraform čte konfliktní vlastnosti, může nastavit obě vlastnosti na stejnou hodnotu, i když uživatel konfiguruje jenom jednu. Další komplikace se objeví, když v rámci stejné vygenerované konfigurace existuje více omezení mezi vlastnostmi. Abyste mohli tento problém zmírnit, musíte vědět, kde v konfiguraci existují konflikty mezi vlastnostmi.

Infrastruktura mimo rozsah prostředků

Pokud k cílovým oborům prostředků používáte Azure Export for Terraform, můžou existovat prostředky potřebné pro konfiguraci mimo zadaný obor. Jedním z příkladů je přiřazení role. Uživatel musí identifikovat prostředky, které jsou mimo rozsah.

Vlastnosti jen pro zápis

Azure Export nemůže v rámci konfigurace generovat vlastnosti jen pro zápis (například hesla). Potřebujete vědět o vlastnostech jen pro zápis a definovat je v konfiguraci pro vytvoření nových sad prostředků.

Úprava kódu tak, aby odpovídal standardům kódování

Existuje několik nezbytných operací, pokud chce uživatel upravit kód tak, aby se řídil standardy kódování. Tyto kroky by byly nezbytné pouze v případě, že uživatel plánuje používat kód v prostředích, která nejsou v prostředích mimo službu.

Prostředky definované vlastností

Některé prostředky v Azure je možné definovat jako vlastnost nadřazeného prostředku Terraformu nebo jako jednotlivé prostředky Terraformu. Jedním z příkladů je podsíť. Azure Export for Terraform definuje prostředek jako jednotlivý prostředek, ale osvědčeným postupem je spárovat stávající konfiguraci kódování.

Explicitní závislosti

Azure Export pro Terraform je v současné době schopný deklarovat pouze explicitní závislosti. Abyste mohli refaktorovat kód tak, aby zahrnoval všechny potřebné implicitní závislosti, musíte znát mapování vztahů mezi prostředky.

Pevně zakódované hodnoty

Azure Export pro Terraform v současné době generuje pevně zakódované řetězce. Osvědčeným postupem je refaktorovat tyto hodnoty na proměnné. Při použití příznaku --full-properties ke zveřejnění všech vlastností se vygenerované konfiguraci dají zobrazit některé citlivé informace (například tajné kódy). K ochraně viditelnosti tohoto kódu použijte doporučené postupy.

Další kroky