Rövid útmutató: Azure DNS-zóna és -rekord létrehozása a Terraform használatával
Ez a cikk bemutatja, hogyan hozhat létre Azure DNS-zónát és A rekordot a Terraform használatával az adott zónában.
A Terraform lehetővé teszi a felhőinfrastruktúra definícióját, előzetes verzióját és üzembe helyezését. A Terraform használatával konfigurációs fájlokat hozhat létre HCL-szintaxissal. A HCL szintaxissal megadhatja a felhőszolgáltatót – például az Azure-t – és a felhőinfrastruktúra elemeit. A konfigurációs fájlok létrehozása után létrehoz egy végrehajtási tervet , amely lehetővé teszi az infrastruktúra változásainak előzetes megtekintését az üzembe helyezés előtt. A módosítások ellenőrzése után alkalmazza a végrehajtási tervet az infrastruktúra üzembe helyezésére.
Ebben a cikkben az alábbiakkal ismerkedhet meg:
- Véletlenszerű érték létrehozása az Azure-erőforráscsoport nevének random_pet használatával
- Azure-erőforráscsoport létrehozása a azurerm_resource_group
- Véletlenszerű érték létrehozása random_string
- Azure DNS-zóna létrehozása azurerm_dns_zone
- Azure DNS A-rekord létrehozása azurerm_dns_a_record
Előfeltételek
A Terraform-kód implementálása
Feljegyzés
A cikk példakódja az Azure Terraform GitHub-adattárban található. További cikkek és mintakód, amelyek bemutatják, hogyan használható a Terraform az Azure-erőforrások kezelésére
Hozzon létre egy könyvtárat, amelyben tesztelheti és futtathatja a Terraform-mintakódot, és az aktuális könyvtárá teheti.
Hozzon létre egy elnevezett
providers.tf
fájlt, és szúrja be a következő kódot:terraform { required_version = ">=1.2" required_providers { azurerm = { source = "hashicorp/azurerm" version = "~>3.0" } random = { source = "hashicorp/random" version = "~>3.0" } } } provider "azurerm" { features {} }
Hozzon létre egy elnevezett
main.tf
fájlt, és szúrja be a következő kódot: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 }
Hozzon létre egy elnevezett
variables.tf
fájlt, és szúrja be a következő kódot: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." }
Hozzon létre egy elnevezett
outputs.tf
fájlt, és szúrja be a következő kódot: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 }
A Terraform inicializálása
Futtassa a Terraform init parancsot a Terraform üzembe helyezésének inicializálásához. Ez a parancs letölti az Azure-erőforrások kezeléséhez szükséges Azure-szolgáltatót.
terraform init -upgrade
Főbb pontok:
- A
-upgrade
paraméter frissíti a szükséges szolgáltatói beépülő modulokat a legújabb verzióra, amely megfelel a konfiguráció verziókorlátozásainak.
Terraform végrehajtási terv létrehozása
Végrehajtási terv létrehozásához futtassa a Terraform-tervet .
terraform plan -out main.tfplan
Főbb pontok:
- A
terraform plan
parancs létrehoz egy végrehajtási tervet, de nem hajtja végre. Ehelyett meghatározza, hogy milyen műveletek szükségesek a konfigurációs fájlokban megadott konfiguráció létrehozásához. Ez a minta lehetővé teszi annak ellenőrzését, hogy a végrehajtási terv megfelel-e az elvárásainak, mielőtt módosítanák a tényleges erőforrásokat. - Az opcionális
-out
paraméter lehetővé teszi a terv kimeneti fájljának megadását.-out
A paraméter használatával biztosítható, hogy a vizsgált terv pontosan az alkalmazott legyen.
Terraform végrehajtási terv alkalmazása
A terraform futtatásával alkalmazza a végrehajtási tervet a felhőinfrastruktúrára.
terraform apply main.tfplan
Főbb pontok:
- A példaparancs
terraform apply
feltételezi, hogy korábban futtatottterraform plan -out main.tfplan
. - Ha másik fájlnevet adott meg a
-out
paraméterhez, használja ugyanazt a fájlnevet a hívásbanterraform apply
. - Ha nem használta a paramétert
-out
, hívjonterraform apply
paraméterek nélkül.
Az eredmények ellenőrzése
Kérje le az Azure-erőforráscsoport nevét.
resource_group_name=$(terraform output -raw resource_group_name)
Kérje le a DNS-zóna nevét.
dns_zone_name=$(terraform output -raw dns_zone_name)
Futtassa az az network dns zone show-t az új DNS-zónával kapcsolatos információk megjelenítéséhez.
az network dns zone show \ --resource-group $resource_group_name \ --name $dns_zone_name
Az erőforrások eltávolítása
Ha már nincs szüksége a Terraformon keresztül létrehozott erőforrásokra, hajtsa végre az alábbi lépéseket:
Futtassa a Terraform-tervet , és adja meg a jelölőt
destroy
.terraform plan -destroy -out main.destroy.tfplan
Főbb pontok:
- A
terraform plan
parancs létrehoz egy végrehajtási tervet, de nem hajtja végre. Ehelyett meghatározza, hogy milyen műveletek szükségesek a konfigurációs fájlokban megadott konfiguráció létrehozásához. Ez a minta lehetővé teszi annak ellenőrzését, hogy a végrehajtási terv megfelel-e az elvárásainak, mielőtt módosítanák a tényleges erőforrásokat. - Az opcionális
-out
paraméter lehetővé teszi a terv kimeneti fájljának megadását.-out
A paraméter használatával biztosítható, hogy a vizsgált terv pontosan az alkalmazott legyen.
- A
A végrehajtási terv alkalmazásához futtassa a terraformát .
terraform apply main.destroy.tfplan
A Terraform hibaelhárítása az Azure-ban
A Terraform Azure-beli használatakor felmerülő gyakori problémák elhárítása