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

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

