Inleiding tot Terraform
Met het opensource IaC-hulpprogramma terraform kunt u cloudinfrastructuur definiëren en inrichten met behulp van een configuratietaal op hoog niveau, ook wel HashiCorp Configuration Language (HCL) genoemd. Terraform codificeert de infrastructuur in configuratiebestanden die de gewenste status voor uw infrastructuur beschrijven. Terraform kan elke infrastructuur beheren, zoals openbare clouds, privéclouds en SaaS-services, met behulp van Terraform-providers.
Terraform-providers voor Azure-infrastructuur
Verschillende Terraform-providers maken het beheer van de Azure-infrastructuur mogelijk:
- AzureRM: Beheer Azure Resource Manager-resources, zoals virtuele machines, opslagaccounts en netwerkinterfaces.
- AzureAD: Beheer Microsoft Entra-resources, zoals groepen, gebruikers, service-principals en toepassingen.
- AzureDevOps: Azure DevOps-resources beheren, zoals agents, opslagplaatsen, projecten, pijplijnen en query's.
- AzAPI: Azure-resources beheren met behulp van de Azure Resource Manager-API's rechtstreeks. Deze provider vormt een aanvulling op de AzureRM-provider door het beheer van de nieuwste Azure-resources mogelijk te maken.
- Azure Stack: Azure Stack-resources beheren, zoals virtuele machines, DNS, virtuele netwerken en opslag.
Een opslagaccount maken
Alle Terraform-configuraties moeten een provider
blok bevatten. Met de volgende HCL-code wordt de Azure Resource Manager-provider (azurerm
) opgegeven. Er wordt een Azure-resourcegroep met de naam storageaccountexamplerg
gedefinieerd op de eastus
locatie. Er wordt een Azure-opslagaccount gemaakt in de resourcegroep. De naam van het opslagaccount is de eerste 24 tekens van een getal dat via de md5
functie wordt gegenereerd.
terraform {
required_version = ">=0.12"
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "~>2.0"
}
}
}
provider "azurerm" {
features {}
}
resource "azurerm_resource_group" "rg" {
location = "eastus"
name = "storageaccountexamplerg"
}
resource "azurerm_storage_account" "example" {
name = substr(md5(azurerm_resource_group.rg.id), 0, 24)
resource_group_name = azurerm_resource_group.rg.name
location = azurerm_resource_group.rg.location
account_kind = "StorageV2"
account_tier = "Standard"
account_replication_type = "LRS"
access_tier = "Hot"
}
De Terraform-code uitvoeren
Voer deze opdracht uit terraform init
om de vereiste Azure-modules te downloaden voor het beheren van uw Azure-resources:
terraform init
Voer terraform plan
deze opdracht uit om te bepalen welke acties nodig zijn om de configuratie te maken die u hebt opgegeven in uw configuratiebestanden. Als u de opdracht uitvoert, maakt u een uitvoeringsplan, maar past u dit niet toe. Met dit patroon kunt u controleren of het uitvoeringsplan aan uw verwachtingen voldoet voordat u wijzigingen aanbrengt in de werkelijke resources.
terraform plan -out main.tfplan
Nadat u het uitvoeringsplan hebt gecontroleerd, voert terraform apply
u uit om het plan toe te passen. Met deze opdracht worden de gedefinieerde resources gemaakt.
terraform apply main.tfplan
Het opslagaccount controleren
Als u het Azure-opslagaccount wilt controleren, kunt u de terraform state show
opdracht gebruiken. Met deze opdracht wordt de huidige status van de opgegeven resource weergegeven.
In het geval van het opslagaccount dat u in deze module hebt gemaakt, toont de opdracht de gegenereerde naam, samen met een volledige lijst met opslagaccountkenmerken en de bijbehorende waarden.
terraform state show 'azurerm_storage_account.example'
Resources opschonen
Wanneer u de resources die u in deze module hebt gemaakt niet meer nodig hebt, voert u deze uit terraform apply
met de -destroy
vlag:
terraform plan -destroy -out main.destroy.tfplan
Uitvoeren terraform apply
om het uitvoeringsplan toe te passen:
terraform apply main.destroy.tfplan