Een Azure VM-cluster configureren met behulp van Terraform
Dit artikel bevat voorbeeldcode van Terraform voor het maken van een VM-cluster in Azure.
In dit artikel leert u het volgende:
- Een Azure VM-cluster configureren
1. Uw omgeving configureren
- Azure-abonnement: Als u nog geen abonnement op Azure hebt, maak dan een gratis account aan voordat u begint.
Terraform configureren: Als u dit nog niet hebt gedaan, configureert u Terraform met een van de volgende opties:
2. De code implementeren
Maak een map waarin u de Terraform-voorbeeldcode wilt testen en van deze de huidige map wilt maken.
Maak een bestand met de
main.tfnaam en voeg de volgende code in:module "windowsservers" { source = "Azure/compute/azurerm" resource_group_name = azurerm_resource_group.rg.name is_windows_image = true vm_hostname = "mywinvm" // Line can be removed if only one VM module per resource group admin_password = "ComplxP@ssw0rd!" // See note following code about storing passwords in config files vm_os_simple = "WindowsServer" public_ip_dns = ["winsimplevmips"] // Change to a unique name per data center region vnet_subnet_id = module.network.vnet_subnets[0] depends_on = [azurerm_resource_group.rg] } module "network" { source = "Azure/network/azurerm" resource_group_name = azurerm_resource_group.rg.name subnet_prefixes = ["10.0.1.0/24"] subnet_names = ["subnet1"] depends_on = [azurerm_resource_group.rg] } output "windows_vm_public_name" { value = module.windowsservers.public_ip_dns_name } output "vm_public_ip" { value = module.windowsservers.public_ip_address } output "vm_private_ips" { value = module.windowsservers.network_interface_private_ip }Belangrijkste punten:
- In het voorgaande codevoorbeeld wordt aan de variabele ter vereenvoudiging een letterlijke
admin_passwordwaarde toegewezen. Er zijn veel manieren waarop gevoelige gegevens, zoals wachtwoorden, kunnen worden opgeslagen. De beslissing over hoe u uw gegevens wilt beveiligen, komt neer op afzonderlijke keuzes met betrekking tot uw specifieke omgeving en comfortniveau die deze gegevens blootstellen. Als voorbeeld van het risico kan het opslaan van een bestand als dit in broncodebeheer ertoe leiden dat het wachtwoord door anderen wordt gezien. Voor meer informatie over dit onderwerp heeft HashiCorp verschillende manieren gedocumenteerd om invoervariabelen en technieken voor het beheren van gevoelige gegevens (zoals wachtwoorden) te declareeren.
- In het voorgaande codevoorbeeld wordt aan de variabele ter vereenvoudiging een letterlijke
3. Terraform initialiseren
Voer terraform init uit om de Terraform-implementatie te initialiseren.
terraform init
Belangrijkste punten:
- Met deze opdracht worden de Azure-modules gedownload die nodig zijn om een Azure-resourcegroep te maken.
4. Een Terraform-uitvoeringsplan maken
Voer terraform plan uit om een uitvoeringsplan te maken.
terraform plan -out main.tfplan
Belangrijkste punten:
- Met
terraform plande opdracht wordt een uitvoeringsplan gemaakt, maar niet uitgevoerd. In plaats daarvan wordt bepaald welke acties nodig zijn om de configuratie te maken die is opgegeven in uw configuratiebestanden. Met dit patroon kunt u controleren of het uitvoeringsplan overeenkomt met uw verwachtingen voordat u wijzigingen aan werkelijke resources aantreft. - Met de
-outoptionele parameter kunt u een uitvoerbestand voor het plan opgeven. Door de parameter te gebruiken, zorgt u ervoor dat het plan dat-outu hebt gecontroleerd, precies is wat er wordt toegepast. - Zie de sectie beveiligingswaarschuwing voor meer informatie over persistente uitvoeringsplannen en beveiliging.
5. Een Terraform-uitvoeringsplan toepassen
Voer terraform apply uit om het uitvoeringsplan toe te passen op uw cloudinfrastructuur.
terraform apply main.tfplan
Belangrijkste punten:
- Met
terraform applyde bovenstaande opdracht wordt ervan uitgenomen dat u eerder hebtterraform plan -out main.tfplangebruikt. - Als u een andere bestandsnaam voor de parameter hebt
-outopgegeven, gebruikt u dezelfde bestandsnaam in de aanroep naarterraform apply. - Als u de parameter niet hebt
-outgebruikt, roept u gewoonterraform applyaan zonder parameters.
Problemen met Terraform in Azure oplossen
Veelvoorkomende problemen bij het gebruik van Terraform in Azure oplossen