Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Terraform umožňuje definovat, prohlížet a nasazovat cloudovou infrastrukturu. Pomocí Terraformu vytvoříte konfigurační soubory pomocí syntaxe HCL. Syntaxe seznamu HCL umožňuje zadat poskytovatele cloudu, například Azure, a prvky, které tvoří vaši cloudovou infrastrukturu. Po vytvoření konfiguračních souborů vytvoříte plán provádění , který vám umožní zobrazit náhled změn infrastruktury před jejich nasazením. Jakmile ověříte změny, použijete plán provádění k nasazení infrastruktury.
Pomocí azapi_resource_action jako spravovaného prostředku Terraformu můžete provádět imperativní operace změny stavu u Azure prostředků. V tomto příkladu vytvoříte účet úložiště Azure a pak otočíte jeho přístupové klíče.
azapi_resource_action má dva formuláře použití:
-
Prostředek: Provádí operaci změny stavu během
terraform apply. Terraform sleduje akci ve stavu a volitelně ji může vrátit naterraform destroy. - Zdroj dat: Provádí operaci jen pro čtení během plánování. Prozkoumejte rychlý start datového zdroje akce prostředku pro tento scénář.
Formulář zdroje použijte, když potřebujete Terraform k provedení operace Azure, která není založená na standardním životním cyklu vytvoření, čtení, aktualizace nebo odstranění – například rotace přihlašovacích údajů, spuštění nebo zastavení virtuálního počítače nebo vyvolání převzetí služeb při selhání.
- Vytvoření účtu úložiště pomocí poskytovatele AzureRM
- Rotace přístupového klíče účtu úložiště pomocí
azapi_resource_action
Předpoklady
- Předplatné Azure: Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet před tím, než začnete.
Nakonfigurujte Terraform: Pokud jste to ještě neudělali, nakonfigurujte Terraform pomocí jedné z následujících možností:
Když se přihlásíte k webu Azure Portal pomocí účtu Microsoft, použije se výchozí předplatné Azure pro tento účet.
Terraform se automaticky ověřuje pomocí informací z výchozího předplatného Azure.
Spuštěním příkazu az account show ověřte aktuální účet Microsoft a předplatné Azure.
az account show
Všechny změny, které provedete přes Terraform, se nacházejí v zobrazeném předplatném Azure. Pokud chcete, přeskočte zbytek tohoto článku.
Implementace kódu Terraformu
Vytvořte adresář, ve kterém otestujete ukázkový kód Terraformu a nastavíte ho jako aktuální adresář.
Vytvořte soubor s názvem
providers.tfa vložte následující kód:terraform { required_providers { azapi = { source = "Azure/azapi" version = "~> 2.0" } azurerm = { source = "hashicorp/azurerm" version = "~> 4.0" } random = { source = "hashicorp/random" version = "~> 3.0" } } } provider "azurerm" { features {} } provider "azapi" {}Vytvořte soubor s názvem
variables.tfa vložte následující kód:variable "resource_group_location" { type = string default = "eastus" description = "Location of the resource group." } variable "resource_group_name_prefix" { type = string default = "rg" description = "Prefix of the resource group name that's combined with a random value to create a unique name." } variable "storage_account_name_prefix" { type = string default = "st" description = "Prefix of the storage account name that's combined with a random value to create a unique name." }Vytvořte soubor s názvem
main.tfa vložte následující kód:resource "random_pet" "rg_name" { prefix = var.resource_group_name_prefix } resource "random_string" "storage_suffix" { length = 8 upper = false special = false } resource "azurerm_resource_group" "example" { location = var.resource_group_location name = random_pet.rg_name.id } resource "azurerm_storage_account" "example" { name = "${var.storage_account_name_prefix}${random_string.storage_suffix.result}" resource_group_name = azurerm_resource_group.example.name location = azurerm_resource_group.example.location account_tier = "Standard" account_replication_type = "LRS" } resource "azapi_resource_action" "regenerate_key" { type = "Microsoft.Storage/storageAccounts@2023-01-01" resource_id = azurerm_storage_account.example.id action = "regenerateKey" method = "POST" body = { keyName = "key1" } }Klíčové body týkající se použití
azapi_resource_actionjako prostředku:- Pole
actionurčuje operaci ARM, která se má provést. K obměně klíčů k účtům úložiště použijteregenerateKey. - Pole
methodurčuje metodu HTTP. Většina imperativních akcí používáPOST. - Atribut
bodypředává data do operace. Pro regeneraci klíčů určete, který klíč (key1nebokey2) se má otočit. - Akce se provádí během
terraform applya je sledována ve stavové databázi Terraformu.
- Pole
Vytvořte soubor s názvem
outputs.tfa vložte následující kód:output "resource_group_name" { value = azurerm_resource_group.example.name } output "storage_account_name" { value = azurerm_storage_account.example.name }
Spusťte terraform init a inicializujte nasazení Terraformu. Tento příkaz stáhne poskytovatele Azure potřebného ke správě vašich Azure prostředků.
terraform init -upgrade
klíčové body:
- Parametr
-upgradeaktualizuje potřebné pluginy poskytovatele na nejnovější verzi, která odpovídá verzním omezením konfigurace.
Spusťte terraform plan pro vytvoření plánu provedení.
terraform plan -out main.tfplan
klíčové body:
- Příkaz
terraform planvytvoří plán provádění, ale nespustí ho. Místo toho určuje, jaké akce jsou nezbytné k vytvoření konfigurace zadané v konfiguračních souborech. Tento model umožňuje ověřit, jestli plán provádění odpovídá vašim očekáváním, než provede jakékoli změny skutečných prostředků. - Volitelný
-outparametr umožňuje zadat výstupní soubor pro plán. Použití parametru-outzajišťuje, že vámi zkontrolovaný plán je přesně tím, co bude aplikován.
Spusťte terraform apply a aplikujte plán provedení do vaší cloudové infrastruktury.
terraform apply main.tfplan
klíčové body:
-
terraform applyUkázkový příkaz předpokládá, že jste dříve spustiliterraform plan -out main.tfplan. - Pokud jste pro
-outparametr zadali jiný název souboru, použijte stejný název souboru při voláníterraform apply. - Pokud jste parametr nepoužíli
-out, zavolejteterraform applybez parametrů.
Ověření výsledků
Po terraform apply dokončení se klíč účtu úložiště otočil. Obměnu klíčů můžete ověřit tak, že v Azure zkontrolujete klíče účtu úložiště.
Spuštěním příkazu az storage account keys list zobrazte klíče účtu úložiště.
az storage account keys list \
--resource-group <resource_group_name> \
--account-name <storage_account_name>
Pole value zobrazuje aktuální klíč.
Příklady dalších akcí prostředků
Prostředek azapi_resource_action funguje s mnoha operacemi Azure. Tady jsou běžné příklady:
-
Virtual Machines:
deallocate,start,restart,powerOff,reimage -
Trezory klíčů:
purge(pro měkce smazané trezory),rotate(pro spravované klíče) -
App Services:
swap(pro nasazovací sloty),restart -
Databáze:
failover,promote - Výpočetní prostředky: Jakákoli operace vystavená rozhraním REST API Azure, která změní stav bez vytvoření nebo zničení prostředku
Vyčistěte zdroje
Pokud už prostředky vytvořené přes Terraform nepotřebujete, proveďte následující kroky:
Spusťte terraform plan a zadejte parametr
destroy.terraform plan -destroy -out main.destroy.tfplanklíčové body:
- Příkaz
terraform planvytvoří plán provádění, ale nespustí ho. Místo toho určuje, jaké akce jsou nezbytné k vytvoření konfigurace zadané v konfiguračních souborech. Tento model umožňuje ověřit, jestli plán provádění odpovídá vašim očekáváním, než provede jakékoli změny skutečných prostředků. - Volitelný
-outparametr umožňuje zadat výstupní soubor pro plán. Použití parametru-outzajišťuje, že vámi zkontrolovaný plán je přesně tím, co bude aplikován.
- Příkaz
Spusťte terraform apply pro aplikaci prováděcího plánu.
terraform apply main.destroy.tfplan
Řešení potíží s Terraformem v Azure
Řešení běžných problémů při používání Terraformu v Azure