Hashicorp Terraform é uma ferramenta de infraestrutura como código (IaC, na sigla em inglês) que permite provisionar e gerenciar infraestrutura em nuvem. O Terraform fornece plug-ins chamados provedores, que permitem interagir com provedores de nuvem e outras APIs. É possível usar o provedor Terraform para Google Cloud (provedor do Google Cloud) para provisionar e gerenciar a infraestrutura do Google Cloud.
Benefícios do uso do Terraform
Nesta seção, explicamos alguns dos benefícios de usar o Terraform para provisionar e gerenciar a infraestrutura do Google Cloud:
- O Terraform é a ferramenta mais usada para provisionar e automatizar a infraestrutura do Google Cloud. É possível usar o provedor Google Cloud para configurar e gerenciar todos os recursos do Google Cloud usando a mesma sintaxe e ferramentas declarativas.
- O Terraform permite especificar o estado final de sua preferência para a infraestrutura. Em seguida, você pode implantar a mesma configuração várias vezes para criar ambientes de desenvolvimento, teste e produção reproduzíveis.
- O Terraform permite gerar um plano de execução que mostra o que ele fará quando a configuração for aplicada. Assim, você evita surpresas ao modificar sua infraestrutura com o Terraform.
- O Terraform permite empacotar e reutilizar códigos comuns na forma de módulos. Os módulos apresentam interfaces padrão para criar recursos de nuvem. Eles simplificam os projetos aumentando a legibilidade e permitem que as equipes organizem a infraestrutura em blocos legíveis. Além disso, o Google Cloud publica vários módulos implantáveis como blueprints e exemplos de introdução como Soluções de início rápido.
- O Terraform registra o estado atual da infraestrutura e permite gerenciar o estado com eficácia. O arquivo de estado do Terraform monitora todos os recursos em uma implantação.
Usando o Terraform
O Terraform tem uma sintaxe declarativa e orientada por configuração, que pode ser usada para criar a infraestrutura que você quer provisionar. Usando essa sintaxe, você definirá o estado final de sua preferência para sua infraestrutura em um arquivo de configuração do Terraform. Em seguida, você vai usar a CLI do Terraform para provisionar a infraestrutura com base no arquivo de configuração.
As etapas a seguir explicam como o Terraform funciona:
- Você descreve a infraestrutura do Google Cloud que quer provisionar em um arquivo de configuração do Terraform. Não é preciso criar um código que descreva como provisionar essa configuração.
- Você executa o comando
terraform plan
, que avalia sua configuração e gera um plano de execução. É possível analisar o plano e fazer alterações conforme necessário. - Em seguida, você executa o comando
terraform apply
, que realiza as seguintes ações:- Ele provisiona sua infraestrutura com base no plano de execução invocando as APIs correspondentes do Google Cloud em segundo plano.
- Ele cria um arquivo de estado do Terraform, que é um mapeamento formatado em JSON de recursos no seu arquivo de configuração para os recursos da infraestrutura do mundo real. O Terraform usa esse arquivo para saber o estado mais recente da infraestrutura e para determinar quando criar, atualizar e destruir recursos.
- Em seguida, ao executar
terraform apply
, o Terraform usa o mapeamento no arquivo de estado para comparar a infraestrutura atual com o código e fazer atualizações conforme necessário:- Se um objeto de recurso definido no arquivo de configuração não existir no arquivo de estado, o Terraform o criará.
- Se há um objeto de recurso no arquivo de estado, mas tem uma configuração diferente do arquivo de configuração, o Terraform atualiza o recurso para corresponder ao arquivo de configuração.
- Se um objeto de recurso no arquivo de estado corresponder ao seu arquivo de configuração, o Terraform deixará o recurso inalterado.
Provedores do Google Cloud
Há dois provedores que permitem provisionar e gerenciar a infraestrutura do Google Cloud:
google
: use esse provedor para provisionar e gerenciar as APIs do Google Cloud.google-beta
: use esse provedor para provisionar e gerenciar as APIs Beta do Google Cloud.
Para instruções sobre como usar esses provedores, consulte a referência de configuração do provedor do Google Cloud.
Os provedores google
e google-beta
são desenvolvidos usando uma ferramenta chamada
Magic Modules. Com os Módulos mágicos, os colaboradores podem fazer mudanças em uma
única base de código e desenvolver os provedores google
e google-beta
simultaneamente.
Você pode contribuir com os provedores do Google Cloud usando o Magic Modules seguindo as instruções no Guia de contribuição dos módulos Magic.
A seguir
- Aprenda a criar um servidor da Web básico no Compute Engine usando o Terraform.
- Saiba como armazenar o estado do Terraform em um bucket do Cloud Storage.
- Confira os diversos exemplos do Terraform para Google Cloud (em inglês)
- Analise os módulos e projetos do Terraform para o Google Cloud.