Share via


Hoe Azure Export voor Terraform werkt

In dit artikel maakt u kennis met de Azure Export voor Terraform-werkstromen . In dit artikel vindt u informatie over de best practice-richtlijnen van het hulpprogramma, de huidige beperkingen en hoe u deze beperkingen kunt beperken.

Interactieve modus

Standaard wordt Azure Export voor Terraform uitgevoerd in de interactieve modus. Wanneer u in de interactieve modus wordt uitgevoerd, worden de beschikbare sneltoetsen onder aan de weergave weergegeven.

Opdracht Sneltoets(en)
Navigatie
Selecteer het vorige item in de lijst met resources. -of- k
Selecteer het volgende item in de lijst met resources. ↓ -or- j
Naar de vorige pagina in de lijst met resources gaan. ← -of- h -or- Page Up
Naar de volgende pagina in de lijst met resources gaan. → -of- l -or- Page Down
Ga naar het begin van de lijst met resources. g -or- Home
Ga naar het einde van de lijst met resources. G -or- Einde
Resources selecteren om over te slaan
Resource overslaan (of uitpakken als deze is gemarkeerd als 'Overslaan') Delete
Filterbewerkingen
Definieer een filter op tekst in de resourcelijst. /
Alle huidige filters wissen Esc
Bewerkingen opslaan
Sla een toewijzingsbestand van de resourcelijst op. Het uitvoerbestand wordt beïnvloed door overslaan (maar niet filteren). s
Exporteer resources naar de status (indien --hcl-only niet opgegeven) en genereert de configuratie. w
Gebruikerservaring
Aanbevelingen voor de huidige resource weergeven. R
Fouten bij het exporteren van resources weergeven (indien van toepassing). E
Help weergeven. ?
Sluit
Sluit de interactieve modus af. k

Voor elke resource probeert Azure Export voor Terraform het bijbehorende Terraform-resourcetype te herkennen. Als er een overeenkomst wordt gevonden, wordt de lijn gemarkeerd met de volgende indicator: 💡.

Als de resource niet kan worden omgezet, moet u het Terraform-resourceadres invoeren in het volgende formulier: <resource type>.<resource name> Verwijst bijvoorbeeld azurerm_linux_virtual_machine.test naar een Terraform-resourcetype van azurerm_linux_virtual_machine terwijl de test naam verwijst naar de naam van de virtuele machine die in de configuratiebestanden wordt gebruikt.

Druk op r om de beschikbare resourcetypen voor de geselecteerde resource weer te geven.

In sommige gevallen zijn er Azure-resources die geen bijbehorende Terraform-resources hebben, bijvoorbeeld als de resource ondersteuning voor Terraform mist. Sommige resources kunnen ook worden gemaakt als neveneffect van het inrichten van een andere resource, zoals de besturingssysteemschijfresource die wordt gemaakt bij het inrichten van een virtuele machine. In deze gevallen kunt u de resources overslaan zonder iets toe te wijzen.

Nadat u alle resources hebt doorlopen die moeten worden geïmporteerd, drukt u op w om de Terraform-configuratie te genereren en (indien --hcl-only niet geselecteerd) te importeren naar de Terraform-status.

Niet-interactieve modus

Standaard wordt Azure Export voor Terraform uitgevoerd in de interactieve modus. Als u wilt opgeven dat het hulpprogramma moet worden uitgevoerd in de niet-interactieve modus, geeft u de --non-interactive vlag op.

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

Belangrijk

Als de map waarin u Azure Export voor Terraform uitvoert, niet leeg is, moet u de vlag toevoegen om de --overwrite--hcl-only vlag te gebruiken.

Aanbevolen procedures voor kernwerkstromen

Op fundamenteel niveau staat elke gebruiker van Azure Export voor een beslissing tussen twee opties:

De volgende subsecties bieden richtlijnen over welke optie u kunt nemen op basis van het scenario.

Infrastructuur beheren

Mogelijk hoeft u niet te exporteren naar de status als u de geconfigureerde resources niet op de gewenste manier in uw omgeving hebt gecontroleerd.

Als u zeker weet dat u de set resources in Terraform wilt beheren met terraform init plan apply werkstromen, is exporteren naar status essentieel.

Als u nog niet zeker weet of u de resources wilt beheren, wordt het doorgeven van de --hcl-only vlag aanbevolen.

Bestaande infrastructuur

In scenario's waarin u exporteert naar bestaande Terraform-omgevingen, kan het handig zijn om te denken --hcl-only aan een terraform-planequivalent , met name voordat u toevoegt aan bestaande omgevingen.

De terraform apply opdracht is gelijk aan het exporteren van resources, waarbij de configuratie is gekoppeld aan de bestaande status. In dit scenario bespaart het gebruik van een toewijzingsbestand runtime om resources weer te geven en toe te wijzen.

Infrastructuur detecteren

Als u niet zeker weet welke resources in een omgeving bestaan, kunt u dit controleren door de --generate-mapping-file vlag op te geven. Zie Aangepaste resourceselectie en -naamgeving verkennen met behulp van Azure Export voor Terraform voor meer informatie over dit onderwerp.

Beperkingen

Azure Export voor Terraform is een complex hulpprogramma waarmee wordt geprobeerd de Azure-infrastructuur te converteren naar Terraform-code en -status. De huidige bekende beperkingen worden beschreven in de volgende subsecties.

Eigenschappen voor alleen-schrijven

Bepaalde eigenschappen in AzureRM zijn alleen-schrijven en worden niet opgenomen in de gegenereerde code die door Azure Export voor Terraform wordt gemaakt. Het probleem wordt opgelost door de eigenschap te definiëren na het exporteren naar HCL-code.

Beperkingen voor meerdere eigenschappen

De AzureRM-provider kan twee eigenschappen instellen die met elkaar conflicteren. Wanneer Azure Export voor Terraform conflicterende eigenschappen leest, kunnen beide eigenschappen worden ingesteld op dezelfde waarde, ondanks dat de gebruiker er slechts één configureert. Er treden verdere complicaties op wanneer er meerdere beperkingen voor meerdere eigenschappen bestaan binnen dezelfde gegenereerde configuratie. U moet weten waar conflicten tussen eigenschappen in uw configuratie bestaan om dit probleem te verhelpen.

Infrastructuur buiten resourcebereik

Wanneer u Azure Export voor Terraform gebruikt om resourcebereiken te bereiken, kunnen resources die vereist zijn voor de configuratie, bestaan buiten het opgegeven bereik. Een voorbeeld hiervan is een roltoewijzing. De gebruiker moet resources identificeren die buiten het bereik vallen.

Eigenschappen voor alleen-schrijven

Azure Export kan geen eigenschappen genereren die alleen-schrijven zijn (zoals wachtwoorden) binnen de configuratie. U moet weten wat de eigenschappen alleen-schrijven zijn en deze definiëren in een configuratie om nieuwe sets resources te maken.

Code aanpassen aan coderingsstandaarden

Er zijn enkele noodzakelijke bewerkingen als de gebruiker de code wil wijzigen om zich aan de coderingsstandaarden te houden. Deze stappen zijn alleen nodig als de gebruiker van plan is om de code te gebruiken in niet-enbox-omgevingen.

Door eigenschappen gedefinieerde resources

Bepaalde resources in Azure kunnen worden gedefinieerd als een eigenschap in een bovenliggende Terraform-resource of een afzonderlijke Terraform-resource. Een voorbeeld hiervan is een subnet. Azure Export voor Terraform definieert de resource als een afzonderlijke resource, maar het is raadzaam om overeen te komen met uw bestaande coderingsconfiguratie.

Expliciete afhankelijkheden

Azure Export voor Terraform kan momenteel alleen expliciete afhankelijkheden declareren. U moet de toewijzing van de relaties tussen resources kennen om de code te herstructureren om eventuele benodigde impliciete afhankelijkheden op te nemen.

Hardgecodeerde waarden

Azure Export voor Terraform genereert momenteel vastgelegde tekenreeksen. Als best practice moet u deze waarden herstructureren naar variabelen. Wanneer u de --full-properties vlag gebruikt om alle eigenschappen weer te geven, kunnen sommige gevoelige informatie (zoals geheimen) ook worden weergegeven in de gegenereerde configuratie. Gebruik aanbevolen procedures om de zichtbaarheid van deze code te beveiligen.

Volgende stappen