Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Narzędzie Terraform umożliwia definiowanie, wyświetlanie wersji zapoznawczej i wdrażanie infrastruktury chmury. Za pomocą narzędzia Terraform tworzysz pliki konfiguracji przy użyciu składni HCL. Składnia listy HCL umożliwia określenie dostawcy chmury — takiego jak platforma Azure — oraz elementów tworzących infrastrukturę chmury. Po utworzeniu plików konfiguracji utworzysz plan wykonywania , który umożliwia wyświetlenie podglądu zmian infrastruktury przed ich wdrożeniem. Po zweryfikowaniu zmian należy zastosować plan wykonywania w celu wdrożenia infrastruktury.
Z tego artykułu dowiesz się, jak używać dostawcy Terraform AzAPI do zarządzania usługą w Azure, której obecnie nie obsługuje dostawca AzureRM. W przykładowym kodzie azapi_resource jest używany do zarządzania zasobem Azure Container Registry.
- Definiowanie i konfigurowanie dostawców modułów AzureRM i AzAPI
- Użyj dostawcy modułu AzureRM, aby utworzyć grupę zasobów platformy Azure o unikatowej nazwie
- Użyj dostawcy AzureRM, aby zarejestrować dostawcę "Microsoft.ContainerRegistry" w swojej subskrypcji.
- Tworzenie zasobu usługi Azure Container Registry przy użyciu dostawcy AzAPI
Wymagania wstępne
- Subskrypcja platformy Azure: jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto .
Skonfiguruj narzędzie Terraform: jeśli jeszcze tego nie zrobiono, skonfiguruj program Terraform przy użyciu jednej z następujących opcji:
- Konfigurowanie narzędzia Terraform w usłudze Azure Cloud Shell w Bash
- Konfigurowanie programu Terraform w usłudze Azure Cloud Shell przy użyciu programu PowerShell
- Konfigurowanie programu Terraform w systemie Windows za pomocą powłoki Bash
- Konfigurowanie programu Terraform w systemie Windows przy użyciu programu PowerShell
Implementowanie kodu narzędzia Terraform
Uwaga
Przykładowy kod tego artykułu znajduje się w repozytorium GitHub programu Azure Terraform. Możesz wyświetlić plik dziennika zawierający wyniki testu z bieżących i poprzednich wersji programu Terraform.
Zobacz więcej artykułów i przykładowego kodu pokazującego, jak zarządzać zasobami platformy Azure za pomocą narzędzia Terraform
Utwórz katalog, w którym chcesz przetestować przykładowy kod narzędzia Terraform i ustawić go jako bieżący katalog.
Utwórz plik o nazwie
providers.tfi wstaw następujący kod: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 {} }Utwórz plik o nazwie
variables.tfi wstaw następujący kod: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 ID so name is unique in your Azure subscription." } variable "container_registry_name" { type = string default = "" description = "Name of the container registry." }Utwórz plik o nazwie
main.tfi wstaw następujący kod:# Create a resource group with a random name. resource "random_pet" "rg_name" { prefix = var.resource_group_name_prefix } resource "azurerm_resource_group" "rg" { location = var.resource_group_location name = random_pet.rg_name.id } # Create a user assigned identity resource. resource "azurerm_user_assigned_identity" "example" { name = "example" resource_group_name = azurerm_resource_group.rg.name location = azurerm_resource_group.rg.location } # Create a random name for the container registry. resource "random_string" "acr_name" { length = 10 special = false upper = false numeric = false } # Manage a container registry resource. resource "azapi_resource" "example" { type = "Microsoft.ContainerRegistry/registries@2020-11-01-preview" name = coalesce(var.container_registry_name, random_string.acr_name.result) parent_id = azurerm_resource_group.rg.id location = azurerm_resource_group.rg.location identity { type = "SystemAssigned, UserAssigned" identity_ids = [azurerm_user_assigned_identity.example.id] } body = { sku = { name = "Standard" } properties = { adminUserEnabled = true } } tags = { "Key" = "Value" } response_export_values = ["properties.loginServer", "properties.policies.quarantinePolicy.status"] }Utwórz plik o nazwie
outputs.tfi wstaw następujący kod:output "resource_group_name" { value = azurerm_resource_group.rg.name } output "azure_container_registry_name" { value = azapi_resource.example.name }
Inicjowanie narzędzia Terraform
Uruchom narzędzie terraform init, aby zainicjować wdrożenie narzędzia Terraform. To polecenie pobiera dostawcę platformy Azure wymaganego do zarządzania zasobami platformy Azure.
terraform init -upgrade
Kluczowe punkty:
- Parametr
-upgradeuaktualnia niezbędne wtyczki dostawcy do najnowszej wersji, która jest zgodna z ograniczeniami wersji konfiguracji.
Tworzenie planu wykonania programu Terraform
Uruchom terraform plan, aby utworzyć plan wykonania.
terraform plan -out main.tfplan
Kluczowe punkty:
- Polecenie
terraform plantworzy plan wykonania, ale nie wykonuje go. Zamiast tego określa, jakie akcje są niezbędne do utworzenia konfiguracji określonej w plikach konfiguracji. Ten wzorzec umożliwia sprawdzenie, czy plan wykonania jest zgodny z oczekiwaniami przed wprowadzeniem jakichkolwiek zmian w rzeczywistych zasobach. - Opcjonalny
-outparametr umożliwia określenie pliku wyjściowego dla planu. Użycie parametru-outgwarantuje, że sprawdzony plan jest dokładnie tym, co jest stosowane.
Stosowanie planu wykonywania narzędzia Terraform
Uruchom terraform apply, aby zastosować plan wykonania do infrastruktury chmury.
terraform apply main.tfplan
Kluczowe punkty:
- Przykładowe
terraform applypolecenie zakłada, że wcześniej uruchomionoterraform plan -out main.tfplanpolecenie . - Jeśli określono inną nazwę pliku parametru
-out, użyj tej samej nazwy pliku w wywołaniu metodyterraform apply. - Jeśli parametr nie został użyty, wywołaj metodę
-outterraform applybez żadnych parametrów.
Weryfikowanie wyników
Pobierz nazwę grupy zasobów.
resource_group_name=$(terraform output -raw resource_group_name)Pobierz nazwę rejestru kontenerów.
azure_container_registry_name=$(terraform output -raw azure_container_registry_name)Uruchom polecenie az acr show , aby wyświetlić rejestr kontenerów.
az acr show --name $azure_container_registry_name --resource-group $resource_group_name
Czyszczenie zasobów
Jeśli zasoby utworzone za pomocą narzędzia Terraform nie są już potrzebne, wykonaj następujące czynności:
Uruchom terraform plan i określ flagę
destroy.terraform plan -destroy -out main.destroy.tfplanKluczowe punkty:
- Polecenie
terraform plantworzy plan wykonania, ale nie wykonuje go. Zamiast tego określa, jakie akcje są niezbędne do utworzenia konfiguracji określonej w plikach konfiguracji. Ten wzorzec umożliwia sprawdzenie, czy plan wykonania jest zgodny z oczekiwaniami przed wprowadzeniem jakichkolwiek zmian w rzeczywistych zasobach. - Opcjonalny
-outparametr umożliwia określenie pliku wyjściowego dla planu. Użycie parametru-outgwarantuje, że sprawdzony plan jest dokładnie tym, co jest stosowane.
- Polecenie
Uruchom terraform apply aby zastosować plan wykonania.
terraform apply main.destroy.tfplan
Rozwiązywanie problemów z programem Terraform na platformie Azure
Rozwiązywanie typowych problemów podczas korzystania z narzędzia Terraform na platformie Azure