Implantar uma VPC com o Terraform

Saiba como usar o Gerenciador de infraestrutura para implantar uma nuvem privada virtual (VPC).

Este guia de início rápido usa uma configuração do Terraform armazenada em um repositório público do GitHub. A configuração define a VPC a ser provisionada.

Antes de começar

  1. Sign in to your Google Account.

    If you don't already have one, sign up for a new account.

  2. Install the Google Cloud CLI.
  3. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  4. To initialize the gcloud CLI, run the following command:

    gcloud init
  5. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Infrastructure Manager API:

    gcloud services enable config.googleapis.com
  8. Set up authentication:

    1. Create the service account:

      gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

      Replace SERVICE_ACCOUNT_NAME with a name for the service account.

    2. Grant the roles/config.agent IAM role to the service account:

      gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=roles/config.agent

      Replace the following:

      • SERVICE_ACCOUNT_NAME: the name of the service account
      • PROJECT_ID: the project ID where you created the service account
  9. Install the Google Cloud CLI.
  10. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  11. To initialize the gcloud CLI, run the following command:

    gcloud init
  12. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  13. Make sure that billing is enabled for your Google Cloud project.

  14. Enable the Infrastructure Manager API:

    gcloud services enable config.googleapis.com
  15. Set up authentication:

    1. Create the service account:

      gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

      Replace SERVICE_ACCOUNT_NAME with a name for the service account.

    2. Grant the roles/config.agent IAM role to the service account:

      gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=roles/config.agent

      Replace the following:

      • SERVICE_ACCOUNT_NAME: the name of the service account
      • PROJECT_ID: the project ID where you created the service account

Conceder permissões para recursos na configuração

Você concedeu as permissões necessárias para executar o Infra Manager, mas também precisa conceder permissões específicas para os recursos descritos na configuração que está implantando.

Conceda permissões para a VPC, que é o recurso definido na configuração do Terraform.

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
    --role=roles/compute.networkAdmin

Substitua:

  • SERVICE_ACCOUNT_NAME: o nome da conta de serviço.
  • PROJECT_ID: o ID do projeto.

Visualizar a implantação

Antes de criar uma implantação, você pode criar uma prévia dela. Use essa visualização para verificar os recursos que serão provisionados.

O comando a seguir tem quatro valores preenchidos que não têm um valor padrão. Esses valores são: o ID do projeto, o nome da conta de serviço, o local us-central1 e o nome quickstart-vpc da rede que você está criando.

Para criar uma visualização, use o seguinte comando:

    gcloud infra-manager previews create projects/PROJECT_ID/locations/us-central1/previews/quickstart-preview \
        --service-account projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
        --git-source-repo=https://github.com/terraform-google-modules/terraform-google-network \
        --git-source-directory=modules/vpc \
        --git-source-ref=master \
        --input-values=project_id=PROJECT_ID,network_name=quickstart-vpc

Depois de criar uma visualização, você pode analisar os resultados. Este guia de início rápido pula essa etapa, mas você pode conferir Exportar e visualizar resultados de visualização se quiser mais detalhes.

Criar uma implantação

Use o Infra Manager para criar uma implantação. Isso significa que o Infra Manager provisiona os recursos definidos na configuração do Terraform.

A configuração deste início rápido tem quatro valores que não têm um valor padrão. O comando a seguir adiciona estes valores: o ID do projeto, o nome da conta de serviço, o local us-central1 e o nome quickstart-vpc da rede que você está criando.

gcloud infra-manager deployments apply projects/PROJECT_ID/locations/us-central1/deployments/quickstart-deployment \
    --service-account=projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
    --git-source-repo=https://github.com/terraform-google-modules/terraform-google-network \
    --git-source-directory=modules/vpc \
    --git-source-ref=master \
    --input-values=project_id=PROJECT_ID,network_name=quickstart-vpc

Quando a implantação for concluída, você vai ver:

Creating the deployment...done

A VPC agora é criada e configurada conforme descrito na configuração.

Conferir os resultados do build no Cloud Build

Para conferir o job do Cloud Build que o Infra Manager usou para criar a implantação, abra a página Histórico da build no Console do Google Cloud:

Abrir a página "Histórico de criações"

Conferir o status da implantação

Agora que a implantação foi concluída, você pode conferir a descrição para consultar informações sobre ela, incluindo o estado.

Confira a descrição da implantação:

gcloud infra-manager deployments describe projects/PROJECT_ID/locations/us-central1/deployments/quickstart-deployment

A saída tem detalhes sobre a implantação, incluindo o carimbo de data/hora da implantação, o nome da revisão mais recente e o estado.

Para o estado, você verá ACTIVE.

Conferir detalhes sobre a VPC provisionada

Confira os detalhes da VPC provisionada:

gcloud infra-manager resources list --revision=projects/PROJECT_ID/locations/us-central1/deployments/quickstart-deployment/revisions/REVISION_ID

Substitua REVISION_ID pelo ID da revisão mais recente. Esse ID é r-0, a menos que você tenha implantado várias vezes. É possível conferir o ID da revisão mais recente na descrição da implantação na seção anterior.

Conferir a VPC no console

Confira a VPC no console:

Acessar redes VPC

Você encontra a VPC com o nome quickstart-vpc. Esse é o VPC provisionado pelo Infra Manager.

Limpar

Para evitar cobranças na sua conta Google Cloud pelos recursos usados nesta página, exclua os recursos que você não precisa mais.

Excluir a VPC

Exclua a VPC e os metadados sobre a implantação:

gcloud infra-manager deployments delete projects/PROJECT_ID/locations/us-central1/deployments/quickstart-deployment

Excluir o projeto

Se você tiver implantado a solução em um novo projeto do Google Cloud e não for mais usar o projeto, exclua-o seguindo estas etapas:

  1. No Console do Google Cloud, acesse a página Gerenciar recursos.

    Acessar "Gerenciar recursos"

  2. Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir.
  3. No prompt, digite o ID do projeto e clique em Encerrar.

A seguir