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.
W tym artykule pokazano, jak za pomocą narzędzia Terraform utworzyć strefę usługi Azure DNS i rekord A w tej strefie.
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.
W tym artykule omówiono sposób wykonywania następujących zadań:
- Tworzenie losowej wartości dla nazwy grupy zasobów platformy Azure przy użyciu random_pet
- Tworzenie grupy zasobów platformy Azure przy użyciu azurerm_resource_group
- Tworzenie wartości losowej przy użyciu random_string
- Tworzenie strefy usługi Azure DNS przy użyciu azurerm_dns_zone
- Tworzenie rekordu usługi Azure DNS A przy użyciu azurerm_dns_a_record
Wymagania wstępne
Implementowanie kodu narzędzia Terraform
Uwaga
Przykładowy kod tego artykułu znajduje się w repozytorium GitHub narzędzia Azure 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ć i uruchomić przykładowy kod programu Terraform i utworzyć go jako bieżący katalog.
Utwórz plik o nazwie
providers.tfi wstaw następujący kod:terraform { required_version = ">=1.2" required_providers { azurerm = { source = "hashicorp/azurerm" version = "~>3.0" } random = { source = "hashicorp/random" version = "~>3.0" } } } provider "azurerm" { features {} }Utwórz plik o nazwie
main.tfi wstaw następujący kod:resource "random_pet" "rg_name" { prefix = var.resource_group_name_prefix } resource "azurerm_resource_group" "rg" { name = random_pet.rg_name.id location = var.resource_group_location } resource "random_string" "azurerm_dns_zone_name" { length = 13 lower = true numeric = false special = false upper = false } resource "azurerm_dns_zone" "zone" { name = ( var.dns_zone_name != null ? var.dns_zone_name : "www.${random_string.azurerm_dns_zone_name.result}.azurequickstart.org" ) resource_group_name = azurerm_resource_group.rg.name } resource "azurerm_dns_a_record" "record" { name = "www" resource_group_name = azurerm_resource_group.rg.name zone_name = azurerm_dns_zone.zone.name ttl = var.dns_ttl records = var.dns_records }Utwórz plik o nazwie
variables.tfi wstaw następujący kod:variable "resource_group_location" { type = string default = "eastus" description = "Location for all resources." } variable "resource_group_name_prefix" { type = string default = "rg" description = "Prefix of the resource group name that's combined with a random value so name is unique in your Azure subscription." } variable "dns_zone_name" { type = string default = null description = "Name of the DNS zone." } variable "dns_ttl" { type = number default = 3600 description = "Time To Live (TTL) of the DNS record (in seconds)." } variable "dns_records" { type = list(string) default = ["1.2.3.4", "1.2.3.5"] description = "List of IPv4 addresses." }Utwórz plik o nazwie
outputs.tfi wstaw następujący kod:output "resource_group_name" { value = azurerm_resource_group.rg.name } output "dns_zone_name" { value = azurerm_dns_zone.zone.name } output "name_servers" { value = azurerm_dns_zone.zone.name_servers }
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 plan terraform, 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 narzędzie terraform, 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 nie użyłeś parametru
-out, wywołajterraform applybez żadnych parametrów.
Weryfikowanie wyników
Pobierz nazwę grupy zasobów platformy Azure.
resource_group_name=$(terraform output -raw resource_group_name)Pobierz nazwę strefy DNS.
dns_zone_name=$(terraform output -raw dns_zone_name)Uruchom az network dns zone show, aby wyświetlić informacje o nowej strefie DNS.
az network dns zone show \ --resource-group $resource_group_name \ --name $dns_zone_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