Com o Guia de configuração da base do Cloud no console do Google Cloud, os administradores podem configurar uma base do Google Cloud pronta para empresas usando uma interface guiada e implantá-la diretamente no console do Google Cloud ou fazer o download dela como Terraform.
Os administradores podem configurar uma entidade, usuários e grupos da organização, bem como vincular ou configurar uma conta de faturamento e configurar a hierarquia de recursos (pastas e projetos), as políticas do IAM, as redes iniciais e a geração de registros e o monitoramento centralizados.
Quando os clientes fazem o download da configuração como Terraform, o console gera um arquivo do Terraform para implantação posterior. Este tutorial fornece instruções para implantação do arquivo baixado do Terraform e considera todos os recursos de infraestrutura implantados anteriormente.
Antes de começar
Veja as práticas recomendadas para usar o Terraform, que incluem diretrizes de desenvolvimento eficaz com o Terraform para os membros da equipe e os fluxos de trabalho.
Se você já implantou a configuração da base clicando no botão "Implantar" no console e agora quer implantar uma configuração do Terraform transferida por download usando seu próprio pipeline, faça o seguinte:
- Faça o download do arquivo de estado do Terraform gerado pelo console.
- Inclua o arquivo de estado salvo no seu próprio processo de pipeline.
Para mais informações, consulte Implantar o Terraform após a implantação no console.
Implantar o Terraform com o Cloud Shell
O Cloud Shell vem com o Terraform pré-instalado e pré-autenticado para que você possa começar rapidamente.
- No guia de configuração no console, clique em Fazer o download como Terraform e salve 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
Faça o upload da configuração do Terraform que você salvou na etapa 1.
No menu
Mais do Cloud Shell, selecione Fazer upload e clique em Escolher arquivos para selecionar a configuração do Terraform. Defina o diretório de destino como a pasta que você criou na etapa anterior e clique em Fazer upload.Verifique se você está no diretório
cloud-foundation-example
.Crie um bucket do Cloud Storage para armazenar o estado remoto do Terraform. Um estado remoto permite que o Terraform use armazenamentos de objetos, como o Cloud Storage, para armazenar informações de estado sobre sua infraestrutura gerenciada pelo Terraform. Essa configuração oferece benefícios como delegação de equipe e bloqueio de estado.
Para criar o bucket 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 em um arquivo
backend.tf
e substitua PROJECT_ID para corresponder ao ID do projeto usado na etapa anterior. Para mais detalhes, consulte como armazenar o estado do Terraform no Cloud Storage.# backend.tf terraform { backend "gcs" { bucket = "tf-state-PROJECT_ID" prefix = "terraform/state" } }
Execute
terraform init
. Esse processo inicializa o diretório de trabalho que contém os arquivos de configuração do Terraform e o back-end.Execute
terraform plan
para acessar os recursos criados pelo Terraform. 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 implanta os recursos no Google Cloud. Quando solicitado, digiteyes
.Confira o console do Google Cloud para verificar se os recursos estão implantados na conta ou projeto.
Reimplantar o Terraform com o Cloud Shell
O Terraform armazena informações sobre recursos implantados no arquivo de estado do Terraform. Se você seguiu as etapas anteriores para implantar a configuração, é altamente recomendável reutilizar o mesmo back-end para detectar, remover e atualizar automaticamente os recursos definidos pela nova configuração exportada.
- No guia de configuração no console, clique em Fazer o download como Terraform e salve 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
Faça o upload da configuração do Terraform que você salvou na etapa 1.
No menu
Mais do Cloud Shell, selecione Fazer upload e clique em Escolher arquivos para selecionar a configuração do Terraform. Defina o diretório de destino como a pasta que você criou na etapa anterior e clique em Fazer upload.Verifique se você está no diretório
cloud-foundation-example-redeploy
.Verifique se o bucket de back-end e o arquivo de estado do Cloud Storage criados anteriormente existem.
Exemplo de saída: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 em um arquivo
backend.tf
reutilizando o mesmo bucket e prefixo.# backend.tf terraform { backend "gcs" { bucket = "tf-state-PROJECT_ID" prefix = "terraform/state" } }
Execute
terraform init
. Esse processo inicializa o diretório de trabalho que contém os arquivos 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 implanta os recursos no Google Cloud. Quando solicitado, digiteyes
.Confira o console do Google Cloud para verificar se os recursos estão implantados na conta ou projeto.
Implante o Terraform após a implantação no console
Se você já implantou a configuração da base usando o botão "Implantar" no console, um arquivo de estado do Terraform foi gerado. Se você quiser fazer o download da configuração do Terraform para implantar usando seu próprio pipeline, inclua o arquivo de estado do Terraform que foi gerado durante a implantação do console.
Para fazer o download e usar o arquivo de estado:
Para fazer o download do arquivo de estado do Terraform, siga os seguintes procedimentos em Gerenciar o arquivo de estado do Terraform:
A fim de mover o arquivo de estado transferido por download para um bucket do Cloud Storage, consulte Armazenar o estado do Terraform em um bucket do Cloud Storage.
Para reimplantar a configuração do Terraform, consulte Reimplantar o Terraform com o Cloud Shell.
Solução de problemas de implantações do Terraform
Implantar o Terraform com recursos atuais
Se a configuração do Terraform transferida por download tentar criar recursos que já existem, o Terraform será fechado com um código de erro 409
.
Para resolver esses erros, exclua o recurso usando o console do Google Cloud
ou a CLI gcloud e aplique novamente a configuração do Terraform.
Como alternativa, se esses recursos forem essenciais e não puderem ser excluídos, é possível
importar recursos
para o estado do Terraform.
Gerenciar a infraestrutura como código com o Terraform, o Cloud Build e o GitOps
Recomendamos seguir este tutorial para ver instruções completas. Essa opção é destinada a administradores e operadores de plataformas que buscam uma estratégia para fazer alterações na infraestrutura de maneira previsível e repetida. O guia considera que você já conhece o Google Cloud, o Linux e o GitHub. As etapas avançadas dessa opção são as seguintes:
- Configurar seu repositório GitHub.
- Configurar o Terraform para armazenar o estado em um bucket do Cloud Storage.
- Conceder permissões à conta de serviço do Cloud Build.
- Conectar o Cloud Build ao seu repositório GitHub.
- Alterar a configuração do ambiente em uma ramificação de recurso.
- Promover mudanças no ambiente de desenvolvimento.
- Promover mudanças no ambiente de produção.