Wprowadzenie do programu Terraform
Narzędzie IaC typu open source programu Terraform umożliwia definiowanie i aprowizowania infrastruktury w chmurze przy użyciu języka konfiguracji wysokiego poziomu znanego jako HashiCorp Configuration Language (HCL). Program Terraform koduje infrastrukturę w plikach konfiguracji, które opisują żądany stan infrastruktury. Narzędzie Terraform może zarządzać dowolną infrastrukturą— taką jak chmury publiczne, chmury prywatne i usługi SaaS — przy użyciu dostawców programu Terraform.
Dostawcy programu Terraform dla infrastruktury platformy Azure
Kilku dostawców programu Terraform umożliwia zarządzanie infrastrukturą platformy Azure:
- AzureRM: zarządzanie zasobami usługi Azure Resource Manager, takimi jak maszyny wirtualne, konta magazynu i interfejsy sieciowe.
- AzureAD: zarządzanie zasobami firmy Microsoft Entra, takimi jak grupy, użytkownicy, jednostki usługi i aplikacje.
- AzureDevOps: zarządzanie zasobami usługi Azure DevOps, takimi jak agenci, repozytoria, projekty, potoki i zapytania.
- AzAPI: zarządzanie zasobami platformy Azure przy użyciu interfejsów API usługi Azure Resource Manager bezpośrednio. Ten dostawca uzupełnia dostawcę modułu AzureRM, włączając zarządzanie najnowszymi zasobami platformy Azure.
- Azure Stack: zarządzanie zasobami usługi Azure Stack, takimi jak maszyny wirtualne, dns, sieci wirtualne i magazyn.
Tworzenie konta magazynu
Wszystkie konfiguracje programu Terraform muszą zawierać provider
blok. Poniższy kod HCL określa dostawcę usługi Azure Resource Manager (azurerm
). Grupa zasobów platformy Azure o nazwie storageaccountexamplerg
jest zdefiniowana eastus
w lokalizacji. Konto usługi Azure Storage jest tworzone w grupie zasobów. Nazwa konta magazynu to pierwsze 24 znaki liczby wygenerowanej md5
za pośrednictwem funkcji.
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"
}
Uruchamianie kodu narzędzia Terraform
Uruchom polecenie terraform init
, aby pobrać wymagane moduły platformy Azure do zarządzania zasobami platformy Azure:
terraform init
Uruchom polecenie , terraform plan
aby określić, jakie akcje są niezbędne do utworzenia konfiguracji określonej w plikach konfiguracji. Uruchomienie polecenia powoduje utworzenie planu wykonania, ale nie ma go zastosowania. Ten wzorzec umożliwia sprawdzenie, czy plan wykonania odpowiada twoim oczekiwaniom przed wprowadzeniem jakichkolwiek zmian w rzeczywistych zasobach.
terraform plan -out main.tfplan
Po zweryfikowaniu planu wykonania uruchom polecenie terraform apply
, aby zastosować plan. To polecenie tworzy zdefiniowane zasoby.
terraform apply main.tfplan
Weryfikowanie konta magazynu
Aby zweryfikować konto usługi Azure Storage, możesz użyć terraform state show
polecenia . To polecenie pokazuje bieżący stan określonego zasobu.
W przypadku konta magazynu utworzonego w tym module polecenie wyświetla wygenerowaną nazwę wraz z pełną listą atrybutów konta magazynu i ich wartościami.
terraform state show 'azurerm_storage_account.example'
Czyszczenie zasobów
Jeśli nie potrzebujesz już zasobów utworzonych w tym module, uruchom terraform apply
polecenie z flagą -destroy
:
terraform plan -destroy -out main.destroy.tfplan
Uruchom polecenie terraform apply
, aby zastosować plan wykonania:
terraform apply main.destroy.tfplan