Implantar infraestrutura usando o Infrastructure Manager

Nesta página, descrevemos como usar o Infrastructure Manager para provisionar um conjunto de recursos doGoogle Cloud definidos em uma configuração do Terraform.

Para visualizar uma implantação sem provisionar recursos, consulte Visualizar uma implantação.

É possível implantar em vários projetos e locais. A conta de serviço precisa de permissões para os recursos e projetos em que os recursos são implantados. Consulte Controle de acesso com o IAM para ver a lista de permissões.

Nesta página, presumimos que você já conhece o Terraform. Para mais detalhes, consulte Terraform e Infra Manager.

Antes de começar

  1. Ative o Infra Manager.
  2. Verifique se você tem as permissões do IAM necessárias para criar implantações: roles/config.admin.
  3. Verifique se você tem uma conta de serviço com as permissões necessárias. Para mais detalhes, consulte Configurar a conta de serviço.
  4. Identifique a configuração do Terraform a ser implantada. Verifique se essa configuração do Terraform obedece às restrições. Especificamente, verifique se a configuração não contém dados sensíveis.
  5. Se você quiser visualizar a implantação antes de configurar os recursos, consulte Visualizar uma implantação.
  6. Confirme a cota da sua organização para produtos associados à infraestrutura pretendida. Podem ocorrer erros de implantação se a infraestrutura pretendida exceder a cota da sua organização para os produtos usados pela implantação. Consulte Cotas e limites para mais informações.

  7. O Infra Manager usa o Cloud Build para criar, atualizar ou visualizar uma implantação. A criação e a atualização de implantações têm um tempo limite de duas horas, enquanto a visualização de uma implantação tem um tempo limite de uma hora.

    Se você estiver gerenciando vários recursos em uma única configuração que exceda esse limite, divida a configuração em várias implantações.

Conceder permissões específicas para a configuração

Para implantar recursos do Google Cloud especificados na configuração do Terraform, a conta de serviço usada para chamar o Infra Manager precisa das permissões necessárias específicas para os recursos que você está implantando.

Essas permissões são adicionais às necessárias para usar o serviço do Infra Manager.

Para saber como conceder permissões para os recursos do Google Cloud e garantir que você tenha acesso aos projetos necessários, consulte Configurar a conta de serviço.

Conectar seu repositório Git privado e o host ao Cloud Build

Se você estiver implantando uma configuração do Terraform de um repositório Git privado, será necessário conectar o host e o repositório Git ao Cloud Build.

Criar uma implantação usando uma configuração do Terraform

É possível usar o Infra Manager para implantar uma configuração do Terraform de várias maneiras:

  • Recomendado: use o Infra Manager no console do Google Cloud para selecionar uma origem, ver detalhes da implantação, visualizar e implantar configurações do Terraform. É possível usar o Gerenciador de infraestrutura no console do Google Cloud para implantar de buckets do Cloud Storage e repositórios do Git.
  • Use o Infra Manager na Google Cloud CLI para implantar configurações do Terraform de:
    • Buckets do Cloud Storage
    • Repositórios Git
    • Diretórios locais

Consulte Módulos e blueprints do Terraform para o Google Cloud para ver exemplos e modelos de configurações do Terraform que podem ser usados com o Infra Manager.

Selecione a guia com o fluxo de trabalho escolhido para mais informações sobre como criar uma implantação.

Console

Nesta seção, descrevemos como implantar uma configuração do Terraform usando o Infra Manager no console do Google Cloud .

  1. No console do Google Cloud , acesse a página Infra Manager.

    Acessar o Infra Manager

  2. Clique em Criar para criar uma nova implantação.
  3. Na página Detalhes da implantação, defina os parâmetros iniciais da implantação.

    Substitua:

    • ID da implantação: no campo ID da implantação, insira um nome descritivo para a implantação. Consulte a documentação sobre nome da implantação para mais detalhes sobre as restrições de nomenclatura.
    • Região: escolha uma região com disponibilidade no menu suspenso.
    • Versão do Terraform: escolha uma versão compatível do Terraform no menu suspenso. A lista de versões disponíveis do Terraform é preenchida automaticamente com base na Região selecionada. Por padrão, a versão mais recente com suporte do nível sem custo financeiro (1.5.7) é selecionada. A seleção de uma versão paga (como 1.16.5) gera cobranças de implantação e gerenciamento. Para mais informações, consulte Versões compatíveis do Terraform.
    • Conta de serviço: selecione uma conta de serviço atual ou crie uma. O Infra Manager valida automaticamente as permissões com base na infraestrutura descrita na configuração do Terraform. Consulte Configurar a conta de serviço para mais informações sobre como trabalhar com contas de serviço e o Infra Manager.
    • Origem da configuração do Terraform: clique no botão para selecionar Git ou Cloud Storage como origem da configuração do Terraform que você quer implantar.
      • Para o Git, substitua:
        • Repositório Git: forneça um URL, uma ramificação ou uma tag de repositório Git público ou privado.
          Se você fornecer um repositório Git privado, verifique se conectou o host e o repositório ao Cloud Build.
        • Opcional: diretório do Git: o diretório no repositório do Git que tem a configuração do Terraform.
        • Opcional: referência do Git: a referência do Git da configuração. Se você não especificar uma referência, a ramificação padrão configurada do repositório Git será usada.
      • Em Bucket do Cloud Storage, substitua:
        • Origem: o nome do bucket de armazenamento em que a configuração está armazenada.

    Clique em Continuar.

  4. Na página Detalhes do Terraform, use os campos Chave e Valor para preencher a lista de valores de entrada na configuração do Terraform.

    Os valores podem ser qualquer valor de entrada na configuração do Terraform, incluindo aqueles que não são definidos por padrão. Se todos os valores de entrada forem definidos por padrão na configuração do Terraform, eles serão opcionais. Clique em Continuar.

  5. Na página Detalhes avançados, defina parâmetros opcionais para a implantação.

    Substitua:

    • Rótulos: rótulos e anotações são pares de chave-valor de texto em formato livre. É possível usá-las para anexar informações arbitrárias associadas ao recurso. Para mais informações, consulte a documentação sobre anotações.
    • Pool de workers: o recurso de pool de workers em que o job do Cloud Build será executado. O formato do pool de workers é projects/{project}/locations/{location}/workerPools/{workerPoolId}.
    • Bucket do Cloud Storage de artefatos: o local dos registros e artefatos do Cloud Build no Cloud Storage. O formato do caminho é gs://{bucket}/{folder}.
  6. Clique em Criar implantação para iniciar a implantação da configuração do Terraform. Na página Implantações, sua implantação será adicionada à lista com o Status.
  7. Para mais detalhes sobre a implantação, selecione-a para acessar a página Detalhes da implantação.
  8. Pronto. Você implantou a configuração do Terraform usando o Infra Manager.

CLI da gcloud

Nesta seção, descrevemos como implantar uma configuração do Terraform armazenada em um bucket do Cloud Storage. Um bucket de armazenamento permite controlar o acesso à configuração.

  1. Verifique se a configuração do Terraform está em um bucket do Cloud Storage. Consulte Fazer upload de uma configuração para um bucket de armazenamento para mais detalhes.
  2. Se o bucket de armazenamento estiver em um projeto diferente daquele em que você está executando o Infra Manager, verifique se a conta de serviço do Infra Manager tem permissão de leitura para o bucket. Consulte Configurar a conta de serviço para mais detalhes.

    Se o bucket de armazenamento estiver no mesmo projeto que o Infra Manager, a permissão de leitura para o bucket já estará ativada.

  3. Implante a configuração do Terraform:

    gcloud infra-manager deployments apply projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \
            --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \
            --gcs-source gs://BUCKET_NAME/OBJECT_NAME \
            --quota-validation=QUOTA_VALIDATION \
            --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \
            --tf-version-constraint=TERRAFORM_VERSION \
            --annotations="ANNOTATION_KEY=ANNOTATION_VALUE"
            --provider-source=SERVICE_MAINTAINED
            
Substitua:
  • PROJECT_ID: o ID do projeto em que o Infra Manager é executado.
  • LOCATION: o local em que o Infra Manager é executado. Consulte Locais do Infra Manager para ver a lista de locais válidos.
  • DEPLOYMENT_ID: o identificador de implantação que você especificar. Consulte Nome da implantação para detalhes sobre as restrições no identificador de implantação.
  • SERVICE_ACCOUNT_PROJECT_ID é o ID do projeto da conta de serviço. É comum que esse seja o mesmo projeto em que o Infra Manager é executado.
  • SERVICE_ACCOUNT: o nome da conta de serviço que você usa para chamar o Infra Manager.
  • BUCKET_NAME: o nome do bucket de armazenamento em que a configuração está armazenada.
  • OBJECT_NAME: o nome do objeto do arquivo de configuração. Esse objeto pode ser um diretório ou um arquivo ZIP, mas não um arquivo do Terraform. Se você estiver usando o controle de versões de objetos, também poderá especificar o número de geração do objeto. Para mais detalhes, consulte Usar objetos com controle de versão.

    Se o bucket de armazenamento for o caminho raiz da configuração do Terraform, OBJECT_NAME será opcional.

  • Opcional: QUOTA_VALIDATION: o valor que determina se a validação de cota para recursos nos arquivos de configuração do Terraform está ativada ou aplicada quando você cria uma implantação. Os valores possíveis são os seguintes:
    • ENABLED: ativa a validação da cota de computação para recursos nos arquivos de configuração do Terraform. Oferece visibilidade sobre recursos com cotas insuficientes.
    • ENFORCED: aplica a validação de cota para que a implantação falhe se não houver cota suficiente disponível para a infraestrutura definida no arquivo de configuração do Terraform.

    Se QUOTA_VALIDATION não estiver definido, a validação de cota nos arquivos de configuração do Terraform será desativada. Esse é o valor padrão. A validação de cota se aplica a recursos limitados do Google Cloud . Para mais informações, consulte Cotas e limites.

  • INPUT_1_NAME e INPUT_2_NAME: qualquer valor de entrada na configuração do Terraform, incluindo aqueles que não são definidos por padrão. Por exemplo, é possível especificar o projeto em que você implanta os recursos como project_id=my-project.

    Se todos os valores de entrada forem definidos por padrão na configuração, essa flag será opcional.

  • Opcional:TERRAFORM_VERSION: a versão do Terraform para o Infra Manager usar para criar a implantação. Consulte a versão compatível do Terraform para ver a lista de versões compatíveis. Se você remover essa flag opcional, a versão mais recente do Terraform (1.5.7) com suporte no nível sem custo financeiro será usada por padrão. Para usar uma versão paga (como 1.16.5), é necessário especificá-la explicitamente.
  • Opcional: ANNOTATION_KEY e ANNOTATION_VALUE representam um par de chave-valor de texto em formato livre que pode ser anexado às implantações do Infra Manager. Para mais informações sobre o uso e as restrições de anotações e rótulos, consulte Anotações e rótulos.
  • Opcional: PROVIDER_SOURCE: determina qual provedor do Terraform para Google Cloud a implantação usa. Defina como SERVICE_MAINTAINED para usar o provedor do Terraform mantido pelo Infra Manager. Omita esse campo para usar o provedor do Terraform mantido pela HashiCorp. Para mais informações, consulte Usar o provedor do Terraform para o Google Cloud.

CLI da gcloud

Nesta seção, descrevemos como trabalhar com uma configuração do Terraform armazenada em um repositório Git.

  1. Verifique se o Git está instalado.
  2. Se a configuração do Terraform estiver armazenada em um repositório Git privado, verifique se o host e o repositório Git estão conectados ao Cloud Build.
  3. Implante a configuração do Terraform:

    gcloud infra-manager deployments apply projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \
            --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \
            --git-source-repo="GIT_REPO" \
            --git-source-directory="DIRECTORY" \
            --git-source-ref="REF" \
            --quota-validation=QUOTA_VALIDATION \
            --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \
            --tf-version-constraint=TERRAFORM_VERSION \
            --annotations="ANNOTATION_KEY=ANNOTATION_VALUE"
            --provider-source=SERVICE_MAINTAINED
            
Substitua:
  • PROJECT_ID: o ID do projeto em que o Infra Manager é executado.
  • LOCATION: o local em que o Infra Manager é executado. Consulte Locais do Infra Manager para ver a lista de locais válidos.
  • DEPLOYMENT_ID: o identificador de implantação que você especificar. Consulte Nome da implantação para detalhes sobre as restrições no identificador de implantação.
  • SERVICE_ACCOUNT_PROJECT_ID é o ID do projeto da conta de serviço. É comum que esse seja o mesmo projeto em que o Infra Manager é executado.
  • SERVICE_ACCOUNT: o nome da conta de serviço que você usa para chamar o Infra Manager.
  • GIT_REPO: o repositório Git.
  • DIRECTORY: o diretório que tem a configuração do Terraform.
  • Opcional: REF: a referência do Git da configuração. A referência é opcional. Se você não especificar a referência, a ramificação padrão configurada do repositório Git será usada.
  • Opcional: QUOTA_VALIDATION: o valor que determina se a validação de cota para recursos nos arquivos de configuração do Terraform está ativada ou aplicada quando você cria uma implantação. Os valores possíveis são os seguintes:
    • ENABLED: ativa a validação da cota de computação para recursos nos arquivos de configuração do Terraform. Oferece visibilidade sobre recursos com cotas insuficientes.
    • ENFORCED: aplica a validação de cota para que a implantação falhe se não houver cota suficiente disponível para a infraestrutura definida no arquivo de configuração do Terraform.

    Se QUOTA_VALIDATION não estiver definido, a validação de cota nos arquivos de configuração do Terraform será desativada. Esse é o valor padrão. A validação de cota se aplica a recursos limitados do Google Cloud . Para mais informações, consulte Cotas e limites.

  • INPUT_1_NAME e INPUT_2_NAME: qualquer valor de entrada na configuração do Terraform, incluindo aqueles que não são definidos por padrão. Por exemplo, é possível especificar o projeto em que você implanta os recursos como project_id=my-project.

    Se todos os valores de entrada forem definidos por padrão na configuração, essa flag será opcional.

  • Opcional:TERRAFORM_VERSION: a versão do Terraform para o Infra Manager usar para criar a implantação. Consulte a versão compatível do Terraform para ver a lista de versões compatíveis. Se você remover essa flag opcional, a versão mais recente do Terraform (1.5.7) com suporte no nível sem custo financeiro será usada por padrão. Para usar uma versão paga (como 1.16.5), é necessário especificá-la explicitamente.
  • Opcional: ANNOTATION_KEY e ANNOTATION_VALUE representam um par de chave-valor de texto em formato livre que pode ser anexado às implantações do Infra Manager. Para mais informações sobre o uso e as restrições de anotações e rótulos, consulte Anotações e rótulos.
  • Opcional: PROVIDER_SOURCE: determina qual provedor do Terraform para Google Cloud a implantação usa. Defina como SERVICE_MAINTAINED para usar o provedor do Terraform mantido pelo Infra Manager. Omita esse campo para usar o provedor do Terraform mantido pela HashiCorp. Para mais informações, consulte Usar o provedor do Terraform para o Google Cloud.

CLI da gcloud

Nesta seção, descrevemos como trabalhar com uma configuração do Terraform armazenada na máquina local.

  1. Se você usa o Cloud Shell, precisa fazer upload da configuração para ele. Para mais detalhes, consulte Gerenciar arquivos com o Cloud Shell.
  2. Implante a configuração do Terraform:

    gcloud infra-manager deployments apply projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \
            --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \
            --local-source="LOCAL_DIRECTORY" \
            --quota-validation=QUOTA_VALIDATION \
            --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \
            --tf-version-constraint=TERRAFORM_VERSION \
            --annotations="ANNOTATION_KEY=ANNOTATION_VALUE"
            --provider-source=SERVICE_MAINTAINED
            
Substitua:
  • PROJECT_ID: o ID do projeto em que o Infra Manager é executado.
  • LOCATION: o local em que o Infra Manager é executado. Consulte Locais do Infra Manager para ver a lista de locais válidos.
  • DEPLOYMENT_ID: o identificador de implantação que você especificar. Consulte Nome da implantação para detalhes sobre as restrições no identificador de implantação.
  • SERVICE_ACCOUNT_PROJECT_ID é o ID do projeto da conta de serviço. É comum que esse seja o mesmo projeto em que o Infra Manager é executado.
  • SERVICE_ACCOUNT: o nome da conta de serviço que você usa para chamar o Infra Manager.
  • LOCAL_DIRECTORY: o diretório local que armazena a configuração do Terraform. Se você estiver usando o Cloud Shell, esse é o diretório em que a configuração é armazenada.
  • Opcional: QUOTA_VALIDATION: o valor que determina se a validação de cota para recursos nos arquivos de configuração do Terraform está ativada ou aplicada quando você cria uma implantação. Os valores possíveis são os seguintes:
    • ENABLED: ativa a validação da cota de computação para recursos nos arquivos de configuração do Terraform. Oferece visibilidade sobre recursos com cotas insuficientes.
    • ENFORCED: aplica a validação de cota para que a implantação falhe se não houver cota suficiente disponível para a infraestrutura definida no arquivo de configuração do Terraform.

    Se QUOTA_VALIDATION não estiver definido, a validação de cota nos arquivos de configuração do Terraform será desativada. Esse é o valor padrão. A validação de cota se aplica a recursos limitados do Google Cloud . Para mais informações, consulte Cotas e limites.

  • INPUT_1_NAME e INPUT_2_NAME: qualquer valor de entrada na configuração do Terraform, incluindo aqueles que não são definidos por padrão. Por exemplo, é possível especificar o projeto em que você implanta os recursos como project_id=my-project.

    Se todos os valores de entrada forem definidos por padrão na configuração, essa flag será opcional.

  • Opcional:TERRAFORM_VERSION: a versão do Terraform para o Infra Manager usar para criar a implantação. Consulte a versão compatível do Terraform para ver a lista de versões compatíveis. Se você remover essa flag opcional, a versão mais recente do Terraform (1.5.7) com suporte no nível sem custo financeiro será usada por padrão. Para usar uma versão paga (como 1.16.5), é necessário especificá-la explicitamente.
  • Opcional: ANNOTATION_KEY e ANNOTATION_VALUE representam um par de chave-valor de texto em formato livre que pode ser anexado às implantações do Infra Manager. Para mais informações sobre o uso e as restrições de anotações e rótulos, consulte Anotações e rótulos.
  • Opcional: PROVIDER_SOURCE: determina qual provedor do Terraform para Google Cloud a implantação usa. Defina como SERVICE_MAINTAINED para usar o provedor do Terraform mantido pelo Infra Manager. Omita esse campo para usar o provedor do Terraform mantido pela HashiCorp. Para mais informações, consulte Usar o provedor do Terraform para o Google Cloud.

A seguir