Úvod do Terraformu
Opensourcový nástroj IaC Terraformu umožňuje definovat a zřizovat cloudovou infrastrukturu pomocí konfiguračního jazyka vysoké úrovně označovaného jako HCL (HashiCorp Configuration Language). Terraform konfiguruje infrastrukturu v konfiguračních souborech, které popisují požadovaný stav vaší infrastruktury. Terraform může spravovat jakoukoli infrastrukturu, jako jsou veřejné cloudy, privátní cloudy a služby SaaS, pomocí poskytovatelů Terraformu.
Poskytovatelé Terraformu pro infrastrukturu Azure
Několik poskytovatelů Terraformu umožňuje správu infrastruktury Azure:
- AzureRM: Správa prostředků Azure Resource Manageru, jako jsou virtuální počítače, účty úložiště a síťová rozhraní.
- AzureAD: Správa prostředků Microsoft Entra, jako jsou skupiny, uživatelé, instanční objekty a aplikace.
- AzureDevOps: Správa prostředků Azure DevOps, jako jsou agenti, úložiště, projekty, kanály a dotazy.
- AzAPI: Správa prostředků Azure pomocí rozhraní API Azure Resource Manageru přímo. Tento poskytovatel doplňuje poskytovatele AzureRM tím, že umožňuje správu nejnovějších prostředků Azure.
- Azure Stack: Správa prostředků Služby Azure Stack, jako jsou virtuální počítače, DNS, virtuální sítě a úložiště.
Vytvoření účtu úložiště
Všechny konfigurace Terraformu musí obsahovat provider
blok. Následující kód HCL určuje poskytovatele Azure Resource Manageru (azurerm
). V umístění je definována eastus
pojmenovaná storageaccountexamplerg
skupina prostředků Azure. Účet úložiště Azure se vytvoří v rámci skupiny prostředků. Název účtu úložiště je prvních 24 znaků čísla vygenerovaného prostřednictvím md5
funkce.
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"
}
Spuštění kódu Terraformu
Spusťte terraform init
stažení požadovaných modulů Azure pro správu prostředků Azure:
terraform init
Spusťte, terraform plan
abyste zjistili, jaké akce jsou nezbytné k vytvoření konfigurace, kterou jste zadali v konfiguračních souborech. Spuštění příkazu vytvoří plán spuštění, ale nepoužije ho. Tento model umožňuje ověřit, jestli plán provádění odpovídá vašim očekáváním, než provedete jakékoli změny skutečných prostředků.
terraform plan -out main.tfplan
Jakmile ověříte plán provádění, spusťte terraform apply
ho a použijte ho. Tento příkaz vytvoří definované prostředky.
terraform apply main.tfplan
Ověření účtu úložiště
K ověření účtu úložiště Azure můžete použít terraform state show
příkaz. Tento příkaz zobrazí aktuální stav zadaného prostředku.
V případě účtu úložiště, který jste vytvořili v tomto modulu, zobrazí příkaz vygenerovaný název spolu s úplným seznamem atributů účtu úložiště a jejich hodnot.
terraform state show 'azurerm_storage_account.example'
Vyčištění prostředků
Pokud už nepotřebujete prostředky, které jste vytvořili v tomto modulu, spusťte terraform apply
s příznakem -destroy
:
terraform plan -destroy -out main.destroy.tfplan
Spuštěním použijte terraform apply
plán provádění:
terraform apply main.destroy.tfplan