Compartilhar via


Início rápido: usar o Terraform para criar uma conta de Automação do Azure

Neste início rápido, você cria uma conta de Automação do Azure e usa o Terraform para atribuir a função de "Leitor" à conta. Uma conta de Automação é um serviço baseado em nuvem que fornece um ambiente seguro para executar runbooks, que são scripts que automatizam processos. A conta pode automatizar tarefas frequentes, demoradas e propensas a erros que são gerenciadas na nuvem. Essa conta de Automação é criada em um grupo de recursos do Azure, que é um contêiner que contém recursos relacionados para uma solução do Azure. Além disso, uma função "Leitor" é atribuída à conta de Automação, concedendo a permissão de assinatura para exibir todos os recursos em uma conta de Automação, mas não fazer nenhuma alteração.

O Terraform permite a definição, a visualização e a implantação da infraestrutura de nuvem. Usando o Terraform, você cria arquivos de configuração usando sintaxe de HCL. A sintaxe da HCL permite que você especifique o provedor de nuvem, como o Azure, e os elementos que compõem sua infraestrutura de nuvem. Depois de criar os arquivos de configuração, você cria um plano de execução que permite visualizar as alterações de infraestrutura antes de serem implantadas. Depois de verificar as alterações, aplique o plano de execução para implantar a infraestrutura.

Neste artigo, você aprenderá como:

  • Crie um grupo de recursos do Azure com um nome exclusivo.
  • Gere uma cadeia de caracteres aleatória para nomenclatura exclusiva dos recursos do Azure.
  • Crie uma conta de Automação e habilite o acesso à rede pública.
  • Recupere a assinatura atual do Azure.
  • Recupere a definição de função para "Leitor".
  • Atribua a função "Leitor" à conta de Automação.
  • Gere os nomes do grupo de recursos criado e da conta de Automação.

Pré-requisitos

  • Criar uma conta do Azure com uma assinatura ativa. Você pode criar uma conta gratuitamente. As opções para a sua nova conta de Automação são organizadas em guias na página Criar uma conta de Automação do portal do Azure.

  • Instale e configure o Terraform.

Implementar o código do Terraform

Observação

O código de exemplo deste artigo está localizado no repositório do GitHub do Azure Terraform. Você pode exibir o arquivo de log que contém os resultados do teste das versões atuais e anteriores do Terraform.

Veja mais artigos e exemplos de código mostrando como usar o Terraform para gerenciar recursos do Azure.

  1. Crie um diretório no qual testar e executar o código de exemplo do Terraform e faça dele o diretório atual.

  2. Crie um arquivo chamado main.tf, depois insira o código a seguir:

    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
    }
    
    resource "random_string" "azurerm_automation_account_name" {
      length  = 13
      lower   = true
      numeric = false
      special = false
      upper   = false
    }
    
    resource "azurerm_automation_account" "example" {
      name                = coalesce(var.automation_account_name, "autoacc-${random_string.azurerm_automation_account_name.result}")
      resource_group_name = azurerm_resource_group.rg.name
      location            = azurerm_resource_group.rg.location
      sku_name            = "Basic"
      identity {
        type         = "SystemAssigned"
      }
    
      public_network_access_enabled = true
    }
    
    data "azurerm_subscription" "current" {}
    
    data "azurerm_role_definition" "contributor" {
      name = "Contributor"
    }
    
    resource "azurerm_role_assignment" "example" {
      scope              = data.azurerm_subscription.current.id
      role_definition_name = "Contributor"
      principal_id       = azurerm_automation_account.example.identity[0].principal_id
    }
    
  3. Crie um arquivo chamado outputs.tf, depois insira o código a seguir:

    output "resource_group_name" {
      value = azurerm_resource_group.rg.name
    }
    
    output "automation_account_name" {
      value = azurerm_automation_account.example.name
    }
    
  4. Crie um arquivo chamado providers.tf, depois insira o código a seguir:

    terraform {
      required_version = ">=1.0"
    
      required_providers {
        azurerm = {
          source  = "hashicorp/azurerm"
          version = "~>3.0"
        }
        random = {
          source  = "hashicorp/random"
          version = "~>3.0"
        }
      }
    }
    
    provider "azurerm" {
      features {}
    }
    
  5. Crie um arquivo chamado variables.tf, depois insira o código a seguir:

    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 "resource_group_location" {
      type        = string
      default     = "eastus"
      description = "Location of the resource group."
    }
    
    variable "automation_account_name" {
      type        = string
      description = "The name of the Automation Account resource. The value will be randomly generated if blank."
      default     = ""
    }
    

Inicializar Terraform

Execute terraform init para inicializar a implantação do Terraform. Esse comando baixa o provedor do Azure necessário para gerenciar seus recursos do Azure.

terraform init -upgrade

Pontos principais:

  • O parâmetro -upgrade atualiza os plug-ins do provedor necessários para a versão mais recente que esteja em conformidade com as restrições de versão da configuração.

Criar um plano de execução Terraform

Execute o comando terraform plan para criar um plano de execução.

terraform plan -out main.tfplan

Pontos principais:

  • O comando terraform plan cria um plano de execução, mas não o executa. Em vez disso, ele determina quais ações são necessárias para criar a configuração especificada em seus arquivos de configuração. Esse padrão permite que você verifique se o plano de execução corresponde às suas expectativas antes de fazer qualquer alteração nos recursos reais.
  • O parâmetro opcional -out permite que você especifique um arquivo de saída para o plano. Usar o parâmetro -out garante que o plano que você examinou seja exatamente o que é aplicado.

Aplicar um plano de execução do Terraform

Execute terraform apply para aplicar o plano de execução à sua infraestrutura de nuvem.

terraform apply main.tfplan

Pontos principais:

  • O exemplo de comando do terraform apply pressupõe que você executou o terraform plan -out main.tfplan anteriormente.
  • Se você especificou um nome de arquivo diferente para o parâmetro -out, use esse mesmo nome de arquivo na chamada para terraform apply.
  • Se você não usou o parâmetro -out, chame terraform apply sem nenhum parâmetro.

Verifique os resultados

  1. Obtenha o nome do grupo de recursos do Azure.

    resource_group_name=$(terraform output -raw resource_group_name)
    
  2. Obtenha o nome da conta de Automação.

    automation_account_name=$(terraform output -raw automation_account_name)
    
  3. Execute az automation account show para exibir a conta de Automação.

    az automation account show --name $automation_account_name --resource-group $resource_group_name
    

Limpar os recursos

Quando você não precisar mais dos recursos criados por meio o Terraform, execute as seguintes etapas:

  1. Execute terraform plan e especifique o sinalizador destroy.

    terraform plan -destroy -out main.destroy.tfplan
    

    Pontos principais:

    • O comando terraform plan cria um plano de execução, mas não o executa. Em vez disso, ele determina quais ações são necessárias para criar a configuração especificada em seus arquivos de configuração. Esse padrão permite que você verifique se o plano de execução corresponde às suas expectativas antes de fazer qualquer alteração nos recursos reais.
    • O parâmetro opcional -out permite que você especifique um arquivo de saída para o plano. Usar o parâmetro -out garante que o plano que você examinou seja exatamente o que é aplicado.
  2. Execute a aplicação do Terraform para aplicar o plano de execução.

    terraform apply main.destroy.tfplan
    

Solucionar problemas do Terraform no Azure

Solucionar problemas comuns ao usar o Terraform no Azure.

Próximas etapas

Neste Guia de Início Rápido, você criou uma conta de Automação. Explore artigos sobre contas de Automação para saber mais.

Para usar identidades gerenciadas com a conta de Automação, prossiga para: