Terraform – Provisionando seu tfstate em um storage account no Azure.

Recentemente senti a dificuldade de encontrar assuntos relacionados de como provisionar o backend do estado do arquivo tfstate em conta de armazenamento na Azure. Com isso, resolvi criar esse artigo pra ajudar a comunidade e para quem está iniciando os estudos em terraform como eu. Então, vamos lá pro passo-a-passo.

Primeiro passo foi criar um conta trial no Azure para demonstrar, mas podendo ser criada em conta pay-as-you-go ou outra qualquer.

Quais os benefícios traz o armazenamento do estado do tfstate em uma storage na Azure?

  • Colaboração – para trabalho em ambiente corporativo o armazenamento em nuvem é a melhor opção;
  • O armazenamento local pode trazer exclusões acidentais;
  • Informações confidenciais armazenadas localmente.

Comando em PowerShell: no exemplo a seguir vamos criar uma conta de armazenamento na Azure através dos comandos abaixo.

Obs.: utilizei estes comandos no próprio terminal visual Studio code conectada há uma conta na Azure através da Azure Cli.

$RESOURCE_GROUP_NAME=’tfstate’
$STORAGE_ACCOUNT_NAME=”tfstate$(Get-Random)”
$CONTAINER_NAME=’tfstate’

Create resource group

New-AzResourceGroup -Name $RESOURCE_GROUP_NAME -Location eastus

Create storage account

$storageAccount = New-AzStorageAccount -ResourceGroupName $RESOURCE_GROUP_NAME -Name $STORAGE_ACCOUNT_NAME -SkuName Standard_LRS -Location eastus -AllowBlobPublicAccess $false

Create blob container

New-AzStorageContainer -Name $CONTAINER_NAME -Context $storageAccount.context

Storage provisionado

Depois de criar os recursos, você irá executar estes comandos:

$ACCOUNT_KEY=(Get-AzStorageAccountKey -ResourceGroupName $RESOURCE_GROUP_NAME -Name $STORAGE_ACCOUNT_NAME)[0].value
$env:ARM_ACCESS_KEY=$ACCOUNT_KEY

Incluindo o backend no código no Terraform:

Inicialize seu Terraform com o comando abaixo:

terraform init

Agora seu tfstate está provisionado no Storage na Azure.

Segue o artigo direto do Microsoft Learning para apoio sobre o provisionamento do arquivo.

https://learn.microsoft.com/pt-br/azure/developer/terraform/store-state-in-azure-storage


Deixe um comentário