Szybki start: tworzenie strefy i rekordu usługi Azure DNS przy użyciu programu Terraform
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 można tworzyć pliki konfiguracji przy użyciu składni HCL. Składnia listy HCL umożliwia określenie dostawcy chmury — takiego jak platforma Azure — i elementów, które tworzą infrastrukturę chmury. Po utworzeniu plików konfiguracji należy utworzyć plan wykonania , który umożliwia wyświetlenie podglądu zmian infrastruktury przed ich wdrożeniem. Po zweryfikowaniu zmian zastosujesz plan wykonania 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 narzędzia Terraform i ustawić go jako bieżący katalog.
Utwórz plik o nazwie
providers.tf
i 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.tf
i 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.tf
i 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.tf
i 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 kwestie:
- Parametr
-upgrade
uaktualnia 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 kwestie:
- Polecenie
terraform plan
tworzy 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
-out
parametr umożliwia określenie pliku wyjściowego dla planu. Użycie parametru-out
zapewnia, że przeglądany plan jest dokładnie tym, co jest stosowane. - Aby dowiedzieć się więcej na temat utrwalania planów wykonywania i zabezpieczeń, zobacz sekcję ostrzeżenie o zabezpieczeniach.
Stosowanie planu wykonania programu Terraform
Uruchom narzędzie terraform apply , aby zastosować plan wykonywania do infrastruktury chmury.
terraform apply main.tfplan
Kluczowe kwestie:
- W przykładowym
terraform apply
poleceniu założono, że wcześniej uruchomiono polecenieterraform plan -out main.tfplan
. - Jeśli określono inną nazwę pliku dla parametru
-out
, użyj tej samej nazwy pliku w wywołaniu metodyterraform apply
. - Jeśli nie użyto parametru , wywołaj metodę
-out
terraform apply
bez ż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 polecenie 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ą programu Terraform nie są już potrzebne, wykonaj następujące czynności:
Uruchom plan terraform i określ flagę
destroy
.terraform plan -destroy -out main.destroy.tfplan
Kluczowe kwestie:
- Polecenie
terraform plan
tworzy 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
-out
parametr umożliwia określenie pliku wyjściowego dla planu. Użycie parametru-out
zapewnia, że przeglądany plan jest dokładnie tym, co jest stosowane. - Aby dowiedzieć się więcej na temat utrwalania planów wykonywania i zabezpieczeń, zobacz sekcję ostrzeżenie o zabezpieczeniach.
- Polecenie
Uruchom narzędzie 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 programu Terraform na platformie Azure