A Google Cloud configuração ajuda os administradores a configurar uma Google Cloud base através de um fluxo orientado e a implementar diretamente a partir da Google Cloud consola ou transferir como Terraform.
Este documento ajuda a implementar o seu ficheiro Terraform de Google Cloud configuração.
Antes de começar
Reveja as práticas recomendadas para usar o Terraform, que incluem diretrizes para um desenvolvimento eficaz com o Terraform entre os membros da equipa e os fluxos de trabalho.
Se já implementou a configuração base clicando no botão Implementar na consola e agora quer implementar uma configuração do Terraform transferida através da sua própria conduta, tem de fazer o seguinte:
- Transfira o ficheiro de estado do Terraform gerado pela consola.
- Inclua o ficheiro de estado transferido no seu próprio processo de pipeline.
Para mais informações, consulte o artigo Implemente o Terraform transferido após a implementação a partir da consola.
Implemente o Terraform com o Cloud Shell
O Cloud Shell é fornecido com o Terraform pré-instalado e pré-autenticado, para que possa começar rapidamente.
- No guia de configuração na consola, clique em Transferir como Terraform e guarde a configuração.
- Abra o Cloud Shell.
No Cloud Shell, crie um diretório e navegue até ele:
mkdir cloud-foundation-example && cd cloud-foundation-example
Carregue a configuração do Terraform que transferiu no passo 1.
No menu
Mais do Cloud Shell, selecione Carregar e, de seguida, clique em Escolher ficheiros para selecionar a configuração do Terraform. Defina o diretório de destino para a pasta que criou no passo anterior e, de seguida, clique em Carregar.Certifique-se de que está no diretório
cloud-foundation-example
.Crie um contentor do Cloud Storage para armazenar o estado remoto do Terraform. Um estado remoto permite que o Terraform use locais de armazenamento de objetos, como o Cloud Storage, para armazenar informações de estado sobre a sua infraestrutura gerida pelo Terraform. Esta configuração oferece vantagens, como a delegação de equipas e o bloqueio de estado.
Para criar o contentor do Cloud Storage, execute o seguinte comando:
gcloud storage buckets create gs://tf-state-PROJECT_ID
Defina uma configuração de back-end do Terraform num ficheiro
backend.tf
e substitua PROJECT_ID para corresponder ao ID do projeto que usou no passo anterior. Para mais detalhes, reveja o artigo sobre como armazenar o estado do Terraform no Cloud Storage.# backend.tf terraform { backend "gcs" { bucket = "tf-state-PROJECT_ID" prefix = "terraform/state" } }
Corrida
terraform init
. Este processo inicializa o diretório de trabalho que contém os ficheiros de configuração do Terraform e o back-end.Execute
terraform plan
para ver os recursos que o Terraform cria. Exemplo de saída:... Plan: 6 to add, 0 to change, 0 to destroy. Note: You didn't use the -out option to save this plan, so Terraform can't guarantee to take exactly these actions if you run "terraform apply" now.
Aplique a configuração executando
terraform apply
, que implementa os seus recursos em Google Cloud. Quando lhe for pedido, introduzayes
.Explore a Google Cloud consola para verificar se os seus recursos estão agora implementados na sua conta ou projeto.
Volte a implementar o Terraform com o Cloud Shell
O Terraform armazena informações sobre os recursos implementados no ficheiro de estado do Terraform. Se seguiu os passos anteriores para implementar a sua configuração, recomendamos vivamente que reutilize o mesmo back-end para detetar, remover e atualizar automaticamente os recursos definidos pela nova configuração exportada.
- No guia de configuração na consola, clique em Transferir como Terraform e guarde a configuração.
- Abra o Cloud Shell.
- No Cloud Shell, crie um novo diretório e navegue até ele:
mkdir cloud-foundation-example-redeploy && cd cloud-foundation-example-redeploy
Carregue a configuração do Terraform que transferiu no passo 1.
No menu
Mais do Cloud Shell, selecione Carregar e, de seguida, clique em Escolher ficheiros para selecionar a configuração do Terraform. Defina o diretório de destino para a pasta que criou no passo anterior e, de seguida, clique em Carregar.Certifique-se de que está no diretório
cloud-foundation-example-redeploy
.Certifique-se de que o bucket do back-end do Cloud Storage e o ficheiro de estado criados anteriormente existem.
Exemplo de resultado:gcloud storage ls gs://tf-state-PROJECT_ID/terraform/state/
gs://tf-state-PROJECT_ID/terraform/state/default.tfstate
Defina uma configuração de back-end do Terraform num ficheiro
backend.tf
reutilizando o mesmo contentor e prefixo.# backend.tf terraform { backend "gcs" { bucket = "tf-state-PROJECT_ID" prefix = "terraform/state" } }
Corrida
terraform init
. Este processo inicializa o diretório de trabalho que contém os ficheiros de configuração do Terraform e o back-end.Execute
terraform plan
para ver os recursos que o Terraform cria, altera ou destrói. Exemplo de saída:... Plan: 2 to add, 3 to change, 4 to destroy. Note: You didn't use the -out option to save this plan, so Terraform can't guarantee to take exactly these actions if you run "terraform apply" now.
Aplique a configuração executando
terraform apply
, que implementa os seus recursos em Google Cloud. Quando lhe for pedido, introduzayes
.Explore a Google Cloud consola para verificar se os seus recursos estão agora implementados na sua conta ou projeto.
Implemente o Terraform transferido após a implementação a partir da consola
Se já implementou a configuração base através do botão Implementar na consola, foi gerado um ficheiro de estado do Terraform. Se quiser transferir a configuração do Terraform para implementar através do seu próprio pipeline, tem de incluir o ficheiro de estado do Terraform que foi gerado durante a implementação da consola.
Para transferir e usar o ficheiro de estado:
Para transferir o ficheiro de estado do Terraform, conclua os seguintes procedimentos em Gerir o ficheiro de estado do Terraform:
Para mover o ficheiro de estado que transferiu para um contentor do Cloud Storage, consulte o artigo Armazene o estado do Terraform num contentor do Cloud Storage.
Para voltar a implementar a configuração do Terraform, consulte o artigo Volte a implementar o Terraform com o Cloud Shell.
Resolução de problemas de implementações do Terraform
Implemente o Terraform com recursos existentes
Se a configuração do Terraform transferida tentar criar recursos que já existem, o Terraform termina com um código de erro 409
.
Para resolver estes erros, pode eliminar o recurso através da
Google Cloud consola
ou da CLI gcloud e, em seguida, voltar a aplicar a configuração do Terraform.
Em alternativa, se estes recursos forem críticos e não puderem ser eliminados, pode importar recursos para o seu estado do Terraform.
Faça a gestão da infraestrutura como código com o Terraform, o Cloud Build e o GitOps
Recomendamos que siga este tutorial para ver instruções completas. Esta opção destina-se a administradores e operadores de plataformas que procuram uma estratégia para fazer alterações à infraestrutura de forma previsível e repetida. O guia pressupõe que tem conhecimentos sobre o Google Cloud, o Linux e o GitHub. Os passos gerais desta opção são os seguintes:
- Configure o seu repositório do GitHub.
- Configure o Terraform para armazenar o estado num contentor do Cloud Storage.
- Conceda autorizações à sua conta de serviço do Cloud Build.
- Associe o Cloud Build ao seu repositório do GitHub.
- Altere a configuração do ambiente numa ramificação de funcionalidades.
- Promova alterações para o ambiente de desenvolvimento.
- Promova alterações para o ambiente de produção.