Azure Terrafy para Terraform

Tacilio Rodriguez
Rescue Point
4 min readMay 23, 2023

--

Você sabia que é possível configurar um ambiente modelo e utilizá-lo como um template para a implantação automática de outras subscriptions ou grupos de recursos? Isso mesmo! E o melhor de tudo: você pode contar com a ajuda do Terraform e do plugin Azure Terrafy para tornar essa tarefa muito mais fácil. Com eles, você pode simplificar suas implantações e garantir que todos os recursos necessários estejam disponíveis automaticamente. É uma solução inovadora e eficiente para quem lida com implantações em larga escala na nuvem da Microsoft. Experimente e veja como pode otimizar o seu trabalho!

Pré-requisitos

Azure CLI

Terraform

Azure Terrafy (https://github.com/Azure/aztfexport/releases/tag/v0.11.0) — Ou última versão disponível

Para garantir o bom funcionamento desses softwares, é necessário configurar os paths nas variáveis de ambiente. É fácil fazer isso! Crie pastas no diretório C:/ da sua máquina para cada item, uma para o Terraform e outra para o Azure Terrafy. Em seguida, no Windows, acesse a opção de pesquisa e procure por “variáveis de ambiente” e siga os passos mostrados no print abaixo e pronto! Você está pronto para utilizar essas ferramentas de maneira eficiente e sem problemas.

Variáveis de ambiente

Configuração de variável de ambiente

Agora que você já concluiu a instalação e configuração, é hora de colocar a mão na massa! Comece criando uma pasta para armazenar seus arquivos .tf e .json exportados do Azure. Em seguida, abra o Visual Studio Code e selecione a pasta que acabou de criar. No terminal, digite os comandos conforme mencionado a seguir para dar continuidade ao processo. É simples e fácil!

Digite terraform e pressione ENTER.

Deve aparecer dessa forma, caso apresente erro, verifique se você configurou corretamente a variável de ambiente do seu Windows. Agora faça o mesmo para o Azure Terrafy e digite aztfexport

Ao digitar e pressionar o “ENTER” e apresentar um erro, verifique se você configurou corretamente a variável de ambiente do seu Windows.

Para prosseguir, digite “az login” no terminal e pressione “ENTER”. Isso abrirá uma janela pop-up em seu navegador para que você possa efetuar o login na sua conta Azure. Após o login, feche a janela e volte ao Visual Studio Code. Você verá as subscriptions ativas na sua assinatura, como mostrado na imagem abaixo.

Lista subscriptions da sua assinatura Azure

Caso você tenha mais de um resource group na sua subscription você pode selecionar qual subscription você quer exportar para o modelo Terraform, basta seguir o comando abaixo e inserir o id do resource group.

Digite “az account set — subscription 6c16cafb-xxxx” no terminal (substitua “6c16cafb-xxxx” pelo ID do seu resource group) e pressione “ENTER”. Nesse momento, não será exibida nenhuma mensagem no terminal, mas você já terá definido qual resource pretende exportar.

Setando qual resource group queremos exportar

Agora para iniciar a exportação você deve digitar no terminal o seguinte comando aztfexport rg nome_recurso, no meu caso aztfexport rg rg_demo e pressione ENTER.

Comando para exportar template no modelo Terraform

Iniciando a análise dos recursos ativos na sua assinatura do Azure.

Iniciando a analise dos recuros cadastrados no Resource Group

Na pasta, há alguns arquivos com extensão “.tf” criados por ele. Depois da verificação dos recursos necessários, as informações para iniciar a exportação dos dados aparecem.

Listando todos os recursos cadastrados na Subscription

No rodapé, há comandos de filtro e movimentação. Para importar o modelo para o Terraform, pressione a tecla “W”. Então, o plugin iniciará a exportação dos recursos.

Iniciando a exportação

Quando o processo terminar, você pode fechar o terminal e os arquivos estarão disponíveis no explorador de arquivos do VS Code.

Como você pode ver foi feito todo o provisionamento dos recursos vinculados a subscription de forma simples e rápido, dessa forma basta substituir os nomes de cada recurso para a nova subscription.

Arquivos criados após a exportação e o código no modelo Terraform

Viu como é simples exportar as configurações de todos os recursos que você havia configurado no Azure.

É isso!

Até a próxima…

Artigo escrito em conjunto com Lamark Neris e Anselmo Borges

--

--