Aprovisione recursos do Cloud Build com o Terraform

O HashiCorp Terraform é uma ferramenta de infraestrutura como código (IaC) que lhe permite aprovisionar e gerir a infraestrutura na nuvem. O Terraform oferece plug-ins denominados fornecedores que lhe permitem interagir com fornecedores de nuvem e outras APIs. Pode usar o fornecedor do Terraform para Google Cloud aprovisionar e gerir Google Cloud recursos, incluindo o Cloud Build.

Esta página apresenta a utilização do Terraform com o Cloud Build, incluindo uma introdução ao funcionamento do Terraform e alguns recursos para ajudar a começar a usar o Terraform com o Google Cloud. Também encontra links para documentos de referência do Terraform para o Cloud Build, exemplos de código e guias para usar o Terraform para aprovisionar recursos do Cloud Build.

Para obter instruções sobre como começar a usar o Terraform para o Google Cloud, consulte o artigo Instale e configure o Terraform ou o início rápido do Terraform para o Google Cloud .

Como funciona o Terraform

O Terraform tem uma sintaxe declarativa e orientada para a configuração, que pode usar para descrever a infraestrutura que quer aprovisionar no seu Google Cloud projeto. Depois de criar esta configuração num ou mais ficheiros de configuração do Terraform, pode usar a CLI do Terraform para aplicar esta configuração aos seus recursos do Cloud Build.

Os passos seguintes explicam como funciona o Terraform:

  1. Descreve a infraestrutura que quer aprovisionar num ficheiro de configuração do Terraform. Não precisa de escrever código que descreva como aprovisionar a infraestrutura. O Terraform aprovisiona a infraestrutura por si.
  2. Executa o comando terraform plan, que avalia a sua configuração e gera um plano de execução. Pode rever o plano e fazer alterações conforme necessário.
  3. Executa o comando terraform apply, que realiza as seguintes ações:

    1. Aprovisiona a sua infraestrutura com base no seu plano de execução invocando as APIs Cloud Build correspondentes em segundo plano.
    2. Cria um ficheiro de estado do Terraform, que é um ficheiro JSON que mapeia os recursos no seu ficheiro de configuração para os recursos na infraestrutura do mundo real. O Terraform usa este ficheiro para manter um registo do estado mais recente da sua infraestrutura e para determinar quando criar, atualizar e destruir recursos.
    3. Quando executa terraform apply, o Terraform usa o mapeamento no ficheiro de estado para comparar a infraestrutura existente com o código e fazer atualizações conforme necessário:

      • Se um objeto de recurso estiver definido no ficheiro de configuração, mas não existir no ficheiro de estado, o Terraform cria-o.
      • Se um objeto de recurso existir no ficheiro de estado, mas tiver uma configuração diferente da do ficheiro de configuração, o Terraform atualiza o recurso para corresponder ao ficheiro de configuração.
      • Se um objeto de recurso no ficheiro de estado corresponder ao seu ficheiro de configuração, o Terraform deixa o recurso inalterado.

Recursos do Terraform para o Cloud Build

Os recursos são os elementos fundamentais na linguagem Terraform. Cada bloco de recursos descreve um ou mais objetos de infraestrutura, como redes virtuais ou instâncias de computação.

A tabela seguinte indica os recursos do Terraform disponíveis para o Cloud Build:

Serviço do Cloud Build Recursos do Terraform Origens de dados
Cloud Build v1 google_cloudbuild_trigger
Cloud Build v2 google_cloudbuildv2_connection_iam_policy

Guias baseados no Terraform para o Cloud Build

A tabela seguinte lista os tutoriais e os guias de instruções baseados no Terraform para o Cloud Build:

Guia Detalhes
Associe a um repositório do GitHub Este guia explica como associar um repositório do GitHub ao Cloud Build através do Terraform.
Associe a um anfitrião do GitHub Enterprise Este guia explica como associar um anfitrião do GitHub Enterprise ao Cloud Build através do Terraform.
Associe a um repositório do GitHub Enterprise Este guia explica como associar um repositório do GitHub Enterprise ao Cloud Build através do Terraform.
Associe a um anfitrião do GitLab Enterprise Edition Este guia explica como associar um anfitrião do GitLab Enterprise Edition ao Cloud Build através do Terraform.
Associe a um repositório do GitLab Enterprise Edition Este guia explica como associar um repositório do GitLab Enterprise Edition ao Cloud Build através do Terraform.
Crie uma associação a um anfitrião do Bitbucket Data Center Este guia explica como ligar um anfitrião do Bitbucket Data Center ao Cloud Build através do Terraform.
Associe um repositório do Bitbucket Data Center Este guia explica como associar um repositório do Bitbucket Data Center ao Cloud Build através do Terraform.
Crie uma associação a um anfitrião do Bitbucket Cloud Este guia explica como ligar um anfitrião do Bitbucket Cloud ao Cloud Build através do Terraform.
Associe um repositório do Bitbucket Cloud Este guia explica como associar um repositório do Bitbucket Cloud ao Cloud Build através do Terraform.
Implementar no Compute Engine Este guia explica como fazer implementações azul-verde sem tempo de inatividade em grupos de instâncias geridos (MIGs) do Compute Engine usando o Cloud Build e o Terraform.

Módulos e projetos do Terraform para o Cloud Build

Os módulos e os esquemas ajudam a automatizar o aprovisionamento e a gestão de Google Cloud recursos em grande escala. Um módulo é um conjunto reutilizável de ficheiros de configuração do Terraform que cria uma abstração lógica dos recursos do Terraform. Um projeto é um pacote de módulos implementáveis e reutilizáveis, e uma política que implementa e documenta uma solução específica.

A tabela seguinte apresenta módulos e esquemas relacionados com o Cloud Build:

Módulo ou planta Detalhes
Proteja o pipeline de CI/CD Este módulo permite que os Google Cloud clientes implementem rapidamente um pipeline de CI/CD seguro, implementando muitas das funções descritas em Mudar a segurança para a esquerda.
terraform-google-bootstrap Este módulo ajuda a iniciar uma Google Cloud organização, criando todos os recursos e autorizações necessários para começar a usar o Cloud Foundation Toolkit (CFT). Para os utilizadores que querem usar o Cloud Build e os Cloud Source Repositories para o código de bases, este módulo contém um submódulo que inicializa todos os recursos necessários.

O que se segue?