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. Você pode use o provedor do Terraform para Google Cloud para provisionar e gerenciar Recursos do Google Cloud, incluindo o Cloud Build.
Como o Terraform funciona
O Terraform tem uma sintaxe declarativa e orientada pela configuração, que pode ser usada para descrever a infraestrutura que você quer provisionar no projeto do Google Cloud. Depois de criar essa configuração em um ou mais arquivos de configuração do Terraform, use a CLI do Terraform para aplicá-la aos recursos do Cloud Build.
As etapas a seguir explicam como o Terraform funciona:
- Você descreve a infraestrutura que quer provisionar em um arquivo de configuração do Terraform. Não é preciso escrever código descrevendo como provisionar a infraestrutura. O Terraform provisiona a infraestrutura para você.
- 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. -
Você executará o comando
terraform apply
, que realiza as seguintes ações:- Ele provisiona sua infraestrutura com base no plano de execução invocando as APIs do Cloud Build correspondentes em segundo plano.
- Ele cria um arquivo de estado do Terraform, que é um arquivo JSON que mapeia os recursos no arquivo de configuração aos recursos na infraestrutura do mundo real. O Terraform usa esse arquivo para manter um registro do estado mais recente da sua infraestrutura e determinar quando criar, atualizar e destruir recursos.
-
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 for definido no arquivo de configuração, mas 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.
Guias baseados no Terraform para o Cloud Build
A tabela a seguir lista todos os guias de instruções e tutoriais baseados no Terraform para O Cloud Build:
Guia | Detalhes |
---|---|
Conectar-se a um repositório do GitHub | Este guia explica como conectar um repositório GitHub ao o Cloud Build usando o Terraform. |
Conectar-se a um host do GitHub Enterprise | Este guia explica como conectar um host do GitHub Enterprise ao o Cloud Build usando o Terraform. |
Conectar-se a um repositório do GitHub Enterprise | Este guia explica como conectar um repositório do GitHub Enterprise ao Cloud Build usando o Terraform. |
Conectar-se a um host do GitLab Enterprise Edition | Este guia explica como conectar um host do GitLab Enterprise Edition ao o Cloud Build usando o Terraform. |
Conectar-se a um repositório do GitLab Enterprise Edition | Este guia explica como conectar um repositório do GitLab Enterprise Edition ao Cloud Build usando o Terraform. |
Conectar-se a um host de data center do Bitbucket | Este guia explica como conectar um host de data center do Bitbucket ao o Cloud Build usando o Terraform. |
Conectar-se a um repositório de data center do Bitbucket | Este guia explica como conectar um repositório de data center do Bitbucket ao o Cloud Build usando o Terraform. |
Conectar-se a um host do Bitbucket Cloud | Este guia explica como conectar um host do Bitbucket Cloud ao o Cloud Build usando o Terraform. |
Conectar a um repositório do Bitbucket Cloud | Este guia explica como conectar um repositório Bitbucket Cloud ao o Cloud Build usando o Terraform. |
Implantar em Compute Engine. | Este guia explica como realizar implantações azul-verde sem tempo de inatividade em grupos de instâncias gerenciadas (MIGs, na sigla em inglês) do Compute Engine usando o Cloud Build e o Terraform. |
Módulos e blueprints do Terraform para o Cloud Build
Os módulos e modelos ajudam a automatizar o provisionamento e o gerenciamento de recursos do Google Cloud em escala. Um módulo é um conjunto reutilizável de arquivos de configuração do Terraform que cria uma abstração lógica dos recursos do Terraform. Um blueprint é um pacote de módulos implantáveis e reutilizáveis e uma política que implementa e documenta uma solução específica.
A tabela a seguir lista todos os módulos e blueprints relacionados O Cloud Build:
Módulo ou blueprint | Detalhes |
---|---|
Pipeline de CI/CD seguro | Com este módulo, os clientes do Google Cloud podem implantar rapidamente um sistema pipeline de CI/CD, implementando muitas das funções descritas Deslocamento para a esquerda da segurança. |
terraform-google-bootstrap |
Esse módulo ajuda a inicializar uma organização do Google Cloud, criando todos os recursos e permissões necessários para começar a usar o Cloud Foundation Toolkit (CFT). Para usuários que querem usar Cloud Build e Cloud Source Repositories para código de bases, este módulo contém um submódulo que inicializa todos os do Google Cloud. |
Recursos do Terraform para o Cloud Build
Recursos são os elementos fundamentais da linguagem do Terraform. Cada no bloco "resource", que descreve um ou mais objetos de infraestrutura, como ou instâncias de computação.
A tabela a seguir lista os recursos do Terraform disponíveis para O Cloud Build:
Serviço do Cloud Build | Recursos do Terraform | Fontes de dados |
---|---|---|
Cloud Build v1 | google_cloudbuild_trigger
|
|
Cloud Build v2 | google_cloudbuildv2_connection_iam_policy |
A seguir
- Exemplos de código do Terraform para o Cloud Build
- Documentação do Terraform no Google Cloud
- Documentação do provedor do Google Cloud na HashiCorp
- Infraestrutura como código para o Google Cloud