Implante sua base usando o Terraform baixado do console
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
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.
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.
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 more_vertMais 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:
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.
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, digite yes.
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.
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 more_vertMais 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.
gcloud storage ls gs://tf-state-PROJECT_ID/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, digite yes.
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.
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.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2024-12-22 UTC."],[[["\u003cp\u003eThe Google Cloud foundation setup guide allows administrators to configure and deploy an enterprise-ready Google Cloud foundation directly from the console or as a downloadable Terraform file.\u003c/p\u003e\n"],["\u003cp\u003eDeploying the downloaded Terraform configuration requires setting up a Cloud Storage bucket for Terraform Remote State and initializing Terraform in Cloud Shell.\u003c/p\u003e\n"],["\u003cp\u003eIf the foundation configuration was previously deployed using the console's Deploy button, the Terraform state file generated during that deployment must be downloaded and included when using your own pipeline.\u003c/p\u003e\n"],["\u003cp\u003eRedeploying Terraform involves reusing the previously created Cloud Storage backend and state file to detect, prune, and update existing resources.\u003c/p\u003e\n"],["\u003cp\u003eThe configuration may be managed with Terraform, Cloud Build, and GitOps by setting up a GitHub repository, storing Terraform state in a Cloud Storage bucket, and connecting Cloud Build to your repository.\u003c/p\u003e\n"]]],[],null,["# Deploy your foundation using Terraform downloaded from the console\n\n\u003cbr /\u003e\n\n[Google Cloud Setup](https://console.cloud.google.com/cloud-setup) helps administrators configure a\nGoogle Cloud foundation using a [guided flow](/docs/enterprise/cloud-setup), and\ndeploy directly from the Google Cloud console or download as Terraform.\n| **Warning:** If you plan to deploy a downloaded Terraform configuration using [your\n| own pipeline](#manage), don't click the Deploy button in the console. If you already clicked the Deploy button, see [Deploy downloaded Terraform after deploying from\n| the console](#deploy-terraform-after-console).\n\nThis document helps you deploy your Google Cloud Setup Terraform file.\n\nBefore you begin\n----------------\n\nReview [Best practices for using Terraform](/docs/terraform/best-practices-for-terraform), which includes guidelines for effective development with Terraform across team members and workstreams.\n\nIf you already deployed the foundation configuration by clicking the Deploy button in the console, and now want to deploy a downloaded Terraform configuration using [your own pipeline](#manage), you must do the following:\n\n- Download the Terraform state file that was generated by the console.\n- Include the downloaded state file in your own pipeline process.\n\nFor more information, see [Deploy downloaded Terraform after deploying from the console](#deploy-terraform-after-console).\n\nDeploy Terraform with Cloud Shell\n---------------------------------\n\n| **Note** : If you have previously deployed the downloaded Terraform configuration, proceed to the [redeploy section](#redeploy).\n\nCloud Shell comes with Terraform pre-installed and pre-authenticated, so you can get\nstarted quickly.\n\n1. From the in-console setup guide, click **Download as Terraform** and save the configuration.\n2. Open [Cloud Shell](https://shell.cloud.google.com).\n3. In Cloud Shell, create a directory and navigate to it:\n\n ```\n mkdir cloud-foundation-example && cd cloud-foundation-example\n ```\n4. Upload the Terraform configuration that you downloaded in step 1.\n\n From the Cloud Shell more_vert**More** menu,\n select **Upload** , and then click **Choose Files** to select the Terraform configuration.\n Set the destination directory to the folder that you created in the previous step, and then\n click **Upload**.\n5. Ensure that you're in the `cloud-foundation-example` directory.\n\n6. Create a Cloud Storage bucket to store [Terraform Remote State](/docs/terraform/resource-management/store-state).\n A remote state lets Terraform use object stores like Cloud Storage to store state\n information about your Terraform-managed infrastructure. This configuration provides\n benefits such as team delegation and state locking.\n\n To create the Cloud Storage bucket, run the following command: \n\n ```\n gcloud storage buckets create gs://tf-state-PROJECT_ID\n ```\n7. Define a Terraform backend configuration within a `backend.tf` file and replace\n \u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e to match the project ID that you used in the previous step. For more details,\n review [storing Terraform state in Cloud Storage](/docs/terraform/resource-management/store-state#create_the_bucket).\n\n ```\n # backend.tf\n terraform {\n backend \"gcs\" {\n bucket = \"tf-state-PROJECT_ID\"\n prefix = \"terraform/state\"\n }\n }\n ```\n8. Run `terraform init`. This process initializes your working directory that contains\n the Terraform configuration files and the backend.\n\n9. Run `terraform plan` to see the resources Terraform creates. Example output:\n\n ```\n ...\n Plan: 6 to add, 0 to change, 0 to destroy.\n Note: You didn't use the -out option to save this plan, so Terraform can't\n guarantee to take exactly these actions if you run \"terraform apply\" now.\n ```\n\n \u003cbr /\u003e\n\n10. Apply the configuration by running `terraform apply`, which deploys your resources to\n Google Cloud. When prompted, enter `yes`.\n\n11. [Explore the Google Cloud console](https://console.cloud.google.com/cloud-resource-manager) to verify that\n your resources are now deployed on your account or project.\n\nRedeploy Terraform with Cloud Shell\n-----------------------------------\n\nTerraform stores information about deployed resources within the\nTerraform state file. If you have followed the previous steps to deploy\nyour configuration, we strongly recommend that you reuse the same backend\nto automatically detect, prune, and update resources defined by the new exported\nconfiguration.\n\n1. From the in-console setup guide, click **Download as Terraform** and save the configuration.\n2. Open [Cloud Shell](https://shell.cloud.google.com).\n3. In Cloud Shell, create a new directory and navigate to it: \n\n ```\n mkdir cloud-foundation-example-redeploy && cd cloud-foundation-example-redeploy\n ```\n4. Upload the Terraform configuration that you downloaded in step 1.\n\n From the Cloud Shell more_vert**More** menu, select\n **Upload** , and then click **Choose Files** to select the Terraform configuration.\n Set the destination directory to the folder that you created in the previous step, and then click **Upload**.\n5. Ensure that you're in the `cloud-foundation-example-redeploy` directory.\n\n6. Ensure that the previously created Cloud Storage backend bucket and state file exists.\n\n ```\n gcloud storage ls gs://tf-state-PROJECT_ID/terraform/state/\n ```\n Example output: \n\n ```\n gs://tf-state-PROJECT_ID/terraform/state/default.tfstate\n ```\n\n \u003cbr /\u003e\n\n7. Define a Terraform backend configuration within a `backend.tf` file by reusing\n the same bucket and prefix.\n\n ```\n # backend.tf\n terraform {\n backend \"gcs\" {\n bucket = \"tf-state-PROJECT_ID\"\n prefix = \"terraform/state\"\n }\n }\n ```\n8. Run `terraform init`. This process initializes your working directory that contains\n the Terraform configuration files and the backend.\n\n9. Run `terraform plan` to see the resources Terraform creates, changes, or destroys.\n Example output:\n\n ```\n ...\n Plan: 2 to add, 3 to change, 4 to destroy.\n Note: You didn't use the -out option to save this plan, so Terraform can't\n guarantee to take exactly these actions if you run \"terraform apply\" now.\n ```\n\n \u003cbr /\u003e\n\n10. Apply the configuration by running `terraform apply`, which deploys your resources to\n Google Cloud. When prompted, enter `yes`.\n\n11. [Explore the Google Cloud console](https://console.cloud.google.com/cloud-resource-manager) to verify\n that your resources are now deployed on your account or project.\n\nDeploy downloaded Terraform after deploying from the console\n------------------------------------------------------------\n\nIf you already deployed the foundation configuration using the Deploy button in the console, a Terraform state file was generated. If you now want to download the Terraform configuration to deploy using [your own pipeline](#manage), you must include the Terraform state file that was generated during your console deployment.\n\nTo download and use the state file:\n\n1. To download the Terraform state file, complete the following procedures in [Manage the Terraform state file](/infrastructure-manager/docs/state-file):\n\n 1. [Lock the deployment](/infrastructure-manager/docs/state-file#lock_the_deployment).\n 2. [Download the state file](/infrastructure-manager/docs/state-file#download_the_state_file).\n 3. [Unlock the deployment](/infrastructure-manager/docs/state-file#unlock_the_deployment).\n2. To move the state file you downloaded to a Cloud Storage bucket, see [Store Terraform state in a Cloud Storage bucket](https://cloud.google.com/docs/terraform/resource-management/store-state).\n\n3. To redeploy the Terraform configuration, see [Redeploy Terraform with Cloud Shell](#redeploy).\n\nTroubleshooting Terraform deployments\n-------------------------------------\n\n### Deploy Terraform with existing resources\n\nIf the downloaded Terraform configuration attempts to create resources that\nalready exist, Terraform exits with a\n[`409` error code](/resource-manager/docs/core_errors#CONFLICT).\nTo resolve these errors, you can delete the resource by using the\nGoogle Cloud console\nor gcloud CLI, and then re-apply the Terraform configuration.\nAlternatively, if these resources are critical and cannot be deleted, you can\n[import resources](/docs/terraform/resource-management/import#manually_importing_resources)\ninto your Terraform state.\n\nManage infrastructure as code with Terraform, Cloud Build, and GitOps\n---------------------------------------------------------------------\n\nWe recommend following this [tutorial](/architecture/managing-infrastructure-as-code) for complete instructions. This option is for platform admins and operators who are looking for a strategy to predictably and repeatedly make changes to infrastructure. The guide assumes that you are familiar with Google Cloud, Linux, and GitHub. The high-level steps of this option are as follows:\n\n1. Set up your GitHub repository.\n2. Configure Terraform to store state in a Cloud Storage bucket.\n3. Grant permissions to your Cloud Build service account.\n4. Connect Cloud Build to your GitHub repository.\n5. Change your environment configuration in a feature branch.\n6. Promote changes to the development environment.\n7. Promote changes to the production environment."]]