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:
- 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.
- 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. -
Executa o comando
terraform apply
, que realiza as seguintes ações:- Aprovisiona a sua infraestrutura com base no seu plano de execução invocando as APIs Cloud Build correspondentes em segundo plano.
- 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.
-
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?
- Exemplos de código do Terraform para o Cloud Build
- Documentação do Google Cloud Terraform
- Google Cloud documentação do fornecedor na HashiCorp
- Infraestrutura como código para Google Cloud