Você já criou uma VM do Azure por meio do portal do Azure antes? Se sim, quantos cliques foram necessários para fazer isso? Você consegue fazer isso várias vezes, fornecendo os mesmos valores de entrada exatos para garantir que você atenda a um padrão específico? Provavelmente não. É necessário automatizar o processo. Crie VMs do Azure com Terraform!
O Terraform, da HashiCorp, é uma ferramenta que cria infraestruturas simples ou complexas localmente ou na nuvem. O Terraform é um único arquivo binário que lê arquivos de configuração, cria um estado e garante que sua infraestrutura seja criada e permaneça nesse estado.
Neste artigo, você aprenderá como começar a usar o Terraform criando uma VM do Azure. Este tutorial será um ótimo exemplo de uso do Terraform no Azure.
Pré-requisitos
Se você quiser acompanhar este tutorial, verifique se possui o seguinte:
Ao longo das etapas, este tutorial usará o macOS executando o PowerShell Core, embora o mesmo processo possa ser seguido no Windows 10 usando o PowerShell Core, o Windows PowerShell ou até mesmo o prompt de comando do Windows.
Instalando o Terraform
Para começar, você primeiro precisará baixar o Terraform. Existem várias maneiras de fazer isso, dependendo de sua preferência. Este tutorial está usando macOS, então você pode usar o HomeBrew executando brew install terraform
. Você também pode ir diretamente para a página de download do Terraform ou, se estiver no Windows, você também pode usar o Chocolatey.
Você sabia que Azure Cloud Shell já vem com o Terraform pré-instalado?
Depois de baixar o Terraform, copie-o para uma pasta em seu PATH e execute terraform
. Você verá algumas instruções de uso conforme mostrado abaixo. Se você ver isso, está pronto para continuar.

Autenticando no Azure
O Terraform usa provedores para se comunicar com vários fornecedores locais e em nuvem. Neste caso, você precisa configurar o provedor Azure do Terraform. Supondo que você tenha o Azure CLI instalado e já tenha feito a autenticação no Azure, você precisa primeiro criar um principal de serviço. O Terraform usará o principal de serviço para autenticar e obter acesso à sua assinatura do Azure.
Crie um Principal de Serviço
Em seu console, crie um principal de serviço usando o Azure CLI. Para fazer isso:
Primeiro, encontre o ID da sua assinatura usando o comando az account list
abaixo.
Depois de ter o ID da assinatura, crie um principal de serviço usando a função Contributor com escopo para a sua assinatura.
O Azure CLI entrará em contato com o Azure e criará um aplicativo do Azure AD com uma senha, conforme mostrado abaixo. Como você está atribuindo a saída mostrada abaixo à variável $sp
acima, você terá o appId
e password
armazenados na variável para uso posterior.

Configure as variáveis de ambiente
O Terraform precisa de quatro itens de configuração diferentes para se conectar com sucesso ao Azure.
- O ID da assinatura do Azure
- O ID do aplicativo do Azure AD do principal de serviço
- A senha do principal de serviço
- O locatário do Azure AD
Uma maneira de fornecer essas informações ao Terraform é usando variáveis de ambiente. Como este tutorial está sendo executado em um console do PowerShell, você pode configurar essas variáveis de ambiente usando $env:
. Abaixo, você verá cada uma das variáveis de ambiente que o Terraform procurará ao tentar se conectar ao Azure.
Já que a saída de az ad sp create-for-rbac
foi salva na variável $sp
anteriormente, você pode simplesmente fazer referência às propriedades em vez de copiá-las e colá-las.
Depois de definir as variáveis de ambiente, o Terraform está pronto para se conectar ao Azure!
Crie um arquivo de configuração
Todas as configurações do Terraform são criadas em uma única pasta, normalmente com um nome de módulo. Neste tutorial, você não está criando um módulo, mas seguirá a mesma prática.
No console do PowerShell, crie uma pasta chamada TerraformTesting onde desejar e depois acesse esse diretório.
Em seguida, crie o arquivo de configuração main.tf. É aqui que a configuração para construir a VM Azure com o Terraform será armazenada. Este é o arquivo de configuração mais chamado de “principal”. Ele contém declarações de provedor e recursos para toda a infraestrutura que a configuração irá gerenciar.
Se você quiser aprender mais sobre a sintaxe (HCL), Michael Levan e eu temos um ótimo capítulo sobre o Terraform em nosso eBook No BS Azure and DevOps.
Crie um novo arquivo main.tf dentro do diretório Terraformtesting com o seguinte conteúdo.
Inicialize o Terraform
O Terraform precisa saber que tipo de provedores você estará usando quando ele tentar criar recursos. Ele precisa saber isso com antecedência, porque ele baixa esses provedores na mesma pasta em que você está trabalhando.
Baixe o provedor de recursos azurerm
conforme definido no arquivo de configuração principal, executando terraform init
. Depois disso, você deverá ver uma saída semelhante à abaixo.

Valide a configuração
A configuração que você criou pode não ser perfeita. Eu sei, difícil de acreditar, certo? O Terraform precisa validar a configuração quanto a erros de sintaxe. Para fazer isso, execute o comando terraform plan
. Esse comando lê os arquivos de configuração no diretório e relata quaisquer erros.
Acerte todos os erros que o
terraform plan
apontar antes de tentar realmente provisionar a infraestrutura!
Construa a VM do Azure com o Terraform
Finalmente, é hora de construir a VM do Azure, executando terraform apply
. Quando você executa terraform apply
, o Terraform lê todos os arquivos de configuração que você possui no diretório e solicita sua confirmação. Assim que você digitar “yes”, ele se conectará ao Azure e começará a construir a VM e todos os recursos associados.

Se você vir o texto brilhante e reluzente verde Apply complete!
na parte inferior, o Terraform construiu os recursos com sucesso!
Limpeza
Já que isso foi apenas uma demonstração e você provavelmente não planeja manter essa VM, faça um favor a si mesmo e remova tudo o que você fez.
Você criou um principal de serviço para autenticar o Terraform no Azure. Você pode removê-lo com um comando az ad sp delete
abaixo.
Em seguida, remova a VM do Azure que você acabou de criar e todos os outros recursos no arquivo de configuração usando terraform destroy
. Se você quiser validar a configuração e testar o que aconteceria se você executasse terraform destroy
, também pode executar terraform plan -destroy
.
Conclusão
O Terraform é uma ótima e gratuita ferramenta para construir infraestrutura em várias áreas diferentes. Aprender a sintaxe do HCL é a parte mais difícil do Terraform, mas honestamente, o HCL é uma linguagem intuitiva. Se você está pensando em usar uma ferramenta como o Terraform ou modelos ARM, por exemplo, aprenda o Terraform!
O Terraform é uma ferramenta popular na indústria agora, com ótimo suporte da comunidade e muitas pessoas para ajudar!