Início Rápido: Criar uma zona DNS do Azure e registar com o Terraform
Este artigo mostra como utilizar o Terraform para criar uma zona DNS do Azure e um registo A nessa zona.
O Terraform ativa a definição, a pré-visualização e a implementação da infraestrutura de cloud. Com o Terraform, pode criar ficheiros de configuração com a sintaxe HCL. A sintaxe HCL permite-lhe especificar o fornecedor de cloud ( como o Azure) e os elementos que constituem a sua infraestrutura de cloud. Depois de criar os seus ficheiros de configuração, cria um plano de execução que lhe permite pré-visualizar as alterações da infraestrutura antes de serem implementadas. Depois de verificar as alterações, aplique o plano de execução para implementar a infraestrutura.
Neste artigo, vai aprender a:
- Criar um valor aleatório para o nome do grupo de recursos do Azure com random_pet
- Criar um grupo de recursos do Azure com azurerm_resource_group
- Criar um valor aleatório com random_string
- Criar uma zona DNS do Azure com azurerm_dns_zone
- Criar um registo DNS A do Azure com azurerm_dns_a_record
Pré-requisitos
Implementar o código Terraform
Nota
O código de exemplo para este artigo está localizado no repositório gitHub do Azure Terraform. Veja mais artigos e código de exemplo que mostram como utilizar o Terraform para gerir recursos do Azure
Crie um diretório para testar e executar o código Terraform de exemplo e torná-lo o diretório atual.
Crie um ficheiro com o nome
providers.tf
e insira o seguinte código:terraform { required_version = ">=1.2" required_providers { azurerm = { source = "hashicorp/azurerm" version = "~>3.0" } random = { source = "hashicorp/random" version = "~>3.0" } } } provider "azurerm" { features {} }
Crie um ficheiro com o nome
main.tf
e insira o seguinte código: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 }
Crie um ficheiro com o nome
variables.tf
e insira o seguinte código: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." }
Crie um ficheiro com o nome
outputs.tf
e insira o seguinte código: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 }
Inicializar o Terraform
Execute o init do terraform para inicializar a implementação do Terraform. Este comando transfere o fornecedor do Azure necessário para gerir os seus recursos do Azure.
terraform init -upgrade
Pontos-chave:
- O
-upgrade
parâmetro atualiza os plug-ins de fornecedor necessários para a versão mais recente que está em conformidade com as restrições de versão da configuração.
Criar um plano de execução do Terraform
Execute o plano terraform para criar um plano de execução.
terraform plan -out main.tfplan
Pontos-chave:
- O
terraform plan
comando cria um plano de execução, mas não o executa. Em vez disso, determina que ações são necessárias para criar a configuração especificada nos seus ficheiros de configuração. Este padrão permite-lhe verificar se o plano de execução corresponde às suas expectativas antes de efetuar alterações aos recursos reais. - O parâmetro opcional
-out
permite-lhe especificar um ficheiro de saída para o plano. A utilização do-out
parâmetro garante que o plano que reviu é exatamente o que é aplicado. - Para ler mais sobre a persistência dos planos de execução e segurança, consulte a secção de aviso de segurança.
Aplicar um plano de execução do Terraform
Execute o terraform para aplicar o plano de execução à sua infraestrutura de cloud.
terraform apply main.tfplan
Pontos-chave:
- O comando de exemplo
terraform apply
pressupõe que executouterraform plan -out main.tfplan
anteriormente . - Se especificou um nome de ficheiro diferente para o
-out
parâmetro, utilize esse mesmo nome de ficheiro na chamada paraterraform apply
. - Se não utilizou o
-out
parâmetro, chameterraform apply
sem quaisquer parâmetros.
Verificar os resultados
Obtenha o nome do grupo de recursos do Azure.
resource_group_name=$(terraform output -raw resource_group_name)
Obtenha o nome da zona DNS.
dns_zone_name=$(terraform output -raw dns_zone_name)
Execute az network dns zone show para apresentar informações sobre a nova zona DNS.
az network dns zone show \ --resource-group $resource_group_name \ --name $dns_zone_name
Limpar os recursos
Quando já não precisar dos recursos criados através do Terraform, siga os seguintes passos:
Execute o plano terraform e especifique o
destroy
sinalizador.terraform plan -destroy -out main.destroy.tfplan
Pontos-chave:
- O
terraform plan
comando cria um plano de execução, mas não o executa. Em vez disso, determina que ações são necessárias para criar a configuração especificada nos seus ficheiros de configuração. Este padrão permite-lhe verificar se o plano de execução corresponde às suas expectativas antes de efetuar alterações aos recursos reais. - O parâmetro opcional
-out
permite-lhe especificar um ficheiro de saída para o plano. A utilização do-out
parâmetro garante que o plano que reviu é exatamente o que é aplicado. - Para ler mais sobre a persistência dos planos de execução e segurança, consulte a secção de aviso de segurança.
- O
Execute o terraform para aplicar o plano de execução.
terraform apply main.destroy.tfplan
Resolver problemas do Terraform no Azure
Resolver problemas comuns ao utilizar o Terraform no Azure