Pré-visualize uma implementação

Esta página descreve como usar o Infrastructure Manager para pré-visualizar a implementação de recursos definidos numa configuração do Terraform.

Uma pré-visualização descreve as ações para acionar uma configuração específica do Terraform. Antes de criar uma nova implementação ou atualizar uma implementação, pode pré-visualizar a implementação para validar os recursos que vão ser aprovisionados.

Uma pré-visualização executa o comando Terraform plan. Esta página pressupõe que tem experiência com o Terraform. Para ver detalhes, consulte o artigo Terraform e Infrastructure Manager.

Para criar uma pré-visualização, a configuração do Terraform tem de ser compatível com uma das versões do Terraform suportadas.

Antes de começar

  1. Ative o Infra Manager.
  2. Certifique-se de que tem as autorizações de gestão de acessos e identidade necessárias para criar pré-visualizações: roles/config.admin.
  3. Certifique-se de que tem uma conta de serviço com as autorizações necessárias. Para ver detalhes, consulte o artigo Configure a conta de serviço.
  4. Identifique a configuração do Terraform a pré-visualizar. Certifique-se de que esta configuração do Terraform está em conformidade com as restrições, incluindo o facto de a configuração não conter dados confidenciais.
  5. Se quiser armazenar a configuração do Terraform num contentor de armazenamento, certifique-se de que a configuração do Terraform é carregada para um contentor do Cloud Storage. Consulte o artigo Carregue uma configuração para um contentor de armazenamento para ver mais detalhes.

    Um contentor de armazenamento permite-lhe controlar o acesso à configuração. Também pode implementar uma configuração do Terraform armazenada num repositório Git ou armazenada na sua máquina local.

Pré-visualize uma nova implementação

A configuração do Terraform que pré-visualiza pode estar num contentor de armazenamento ou num repositório Git.

Pré-visualize com uma configuração do Terraform armazenada num contentor do Cloud Storage

  1. Certifique-se de que a configuração do Terraform é carregada para um contentor do Cloud Storage. Consulte o artigo Carregue uma configuração para um contentor de armazenamento para ver mais detalhes.

    Um contentor de armazenamento permite-lhe controlar o acesso à configuração. Também pode implementar uma configuração do Terraform armazenada num repositório Git ou armazenada na sua máquina local.

  2. Para pré-visualizar a atualização:

    gcloud infra-manager previews create projects/PROJECT_ID/locations/LOCATION/previews/PREVIEW_ID \
        --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \
        --gcs-source gs://BUCKET_NAME/OBJECT_NAME \
        --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \
        --tf-version-constraint=TERRAFORM_VERSION \
        --annotations="ANNOTATION_KEY=ANNOTATION_VALUE"
        --provider-source=SERVICE_MAINTAINED
    

    Substituição:

    • PROJECT_ID é o ID do projeto onde o Infrastructure Manager é executado.
    • LOCATION é a localização onde o Infra Manager é executado. Consulte as localizações do Infrastructure Manager para ver a lista de localizações válidas.
    • PREVIEW_ID é o identificador de pré-visualização que especifica. Consulte o Nome de pré-visualização para ver detalhes sobre as restrições do identificador de pré-visualização.
    • SERVICE_ACCOUNT é o nome da conta de serviço que usa para chamar o Infra Manager.
    • SERVICE_ACCOUNT_PROJECT_ID é o ID do projeto da conta de serviço. Normalmente, este é o mesmo projeto onde o Infra Manager é executado.
    • BUCKET_NAME é o nome do contentor de armazenamento onde a configuração está armazenada.
    • OBJECT_NAME é o nome do objeto do ficheiro de configuração. Este objeto pode ser um diretório ou um ficheiro ZIP, mas não um ficheiro Terraform. Se estiver a usar o controlo de versões de objetos, também pode especificar o número de geração do objeto. Para mais detalhes, consulte o artigo Use objetos com versões.

      Se o contentor de armazenamento for o caminho de raiz da configuração do Terraform, OBJECT_NAME é opcional.

    • INPUT_1_NAME=VALUE e INPUT_2_NAME=VALUE: quaisquer valores de entrada na configuração do Terraform, incluindo os que não estão definidos por predefinição. Por exemplo, pode especificar o projeto onde implementa os recursos como project_id=my-project.

      Se todos os valores de entrada estiverem definidos por predefinição na configuração, esta flag é opcional.

    • Opcional: TERRAFORM_VERSION: a versão do Terraform que o Infra Manager vai usar para criar a implementação. Consulte a versão do Terraform suportada para ver a lista de versões suportadas. Se remover esta flag opcional, é usada a versão suportada mais recente do Terraform.

    • Opcional: ANNOTATION_KEY e ANNOTATION_VALUE representam um par chave-valor de texto de forma livre que pode ser anexado às suas implementações do Infra Manager. Para mais informações sobre a utilização e as restrições das anotações e das etiquetas, consulte o artigo Anotações e etiquetas.

    • Opcional: PROVIDER_SOURCE: determina o fornecedor do Terraform que a implementação usa. Google Cloud Definido como SERVICE_MAINTAINED para usar o fornecedor do Terraform mantido pelo Infra Manager. Omita este campo para usar o fornecedor Terraform mantido pela HashiCorp. Para mais informações, consulte o artigo Use o fornecedor do Terraform para Google Cloud.

    Os campos da implementação, como a configuração do Terraform, as variáveis e a conta de serviço, são automaticamente unidos na pré-visualização, a menos que especifique novos valores no comando de pré-visualização.

Agora que criou uma pré-visualização, pode exportar e ver os resultados para rever o plano de implementação.

Pré-visualize com uma configuração do Terraform armazenada num repositório Git

Quando atualiza uma implementação, alguns dos recursos existentes podem não ser alterados. A pré-visualização de uma atualização mostra os recursos que vão ser aprovisionados ou eliminados e os recursos que não vão ser modificados.

Para atualizar uma implementação armazenada num repositório Git:

  1. Se estiver a usar um repositório Git privado, certifique-se de que se ligou ao seu anfitrião do GitHub e ao repositório do GitHub através do Cloud Build para conceder acesso do Infra Manager ao seu repositório.

  2. Para pré-visualizar a implementação:

    gcloud infra-manager previews create projects/PROJECT_ID/locations/LOCATION/previews/PREVIEW_ID \
        --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \
        --git-source-repo="GIT_REPO" \
        --git-source-directory="DIRECTORY" \
        --git-source-ref="REF" \
        --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \
        --tf-version-constraint=TERRAFORM_VERSION \
        --annotations="ANNOTATION_KEY=ANNOTATION_VALUE"
        --provider-source=SERVICE_MAINTAINED
    

Substituição:

  • PROJECT_ID é o ID do projeto onde o Infrastructure Manager é executado.
  • LOCATION é a localização onde o Infra Manager é executado. Consulte as localizações do Infrastructure Manager para ver a lista de localizações válidas.
  • PREVIEW_ID é o identificador de pré-visualização que especifica. Consulte o Nome de pré-visualização para ver detalhes sobre as restrições do identificador de pré-visualização.
  • SERVICE_ACCOUNT é o nome da conta de serviço que usa para chamar o Infra Manager.
  • SERVICE_ACCOUNT_PROJECT_ID é o ID do projeto da conta de serviço. Normalmente, este é o mesmo projeto onde o Infra Manager é executado.
  • GIT_REPO: o repositório Git.
  • DIRECTORY: o diretório que tem a configuração do Terraform.
  • REF: a referência Git da configuração. A referência é opcional. Se não especificar a referência, é usado o ramo configurado predefinido do repositório Git.
  • INPUT_1_NAME=VALUE e INPUT_2_NAME=VALUE: quaisquer valores de entrada na configuração do Terraform, incluindo os que não estão definidos por predefinição. Por exemplo, pode especificar o projeto onde implementa os recursos como project_id=my-project.

    Se todos os valores de entrada estiverem definidos por predefinição na configuração, esta flag é opcional.

  • Opcional: TERRAFORM_VERSION: a versão do Terraform que o Infra Manager vai usar para criar a implementação. Consulte a versão do Terraform suportada para ver a lista de versões suportadas. Se remover esta flag opcional, é usada a versão suportada mais recente do Terraform.

  • Opcional: ANNOTATION_KEY e ANNOTATION_VALUE representam um par chave-valor de texto de forma livre que pode ser anexado às suas implementações do Infra Manager. Para mais informações sobre a utilização e as restrições das anotações e das etiquetas, consulte o artigo Anotações e etiquetas.

  • Opcional: PROVIDER_SOURCE: determina o fornecedor do Terraform que a implementação usa. Google Cloud Definido como SERVICE_MAINTAINED para usar o fornecedor do Terraform mantido pelo Infra Manager. Omita este campo para usar o fornecedor Terraform mantido pela HashiCorp. Para mais informações, consulte o artigo Use o fornecedor do Terraform para Google Cloud.

Os campos da implementação, como a configuração do Terraform, as variáveis e a conta de serviço, são automaticamente unidos na pré-visualização, a menos que especifique novos valores no comando de pré-visualização.

Agora que criou uma pré-visualização, pode exportar e ver os resultados para rever o plano de implementação.

Depois de pré-visualizar uma implementação, pode criá-la para aprovisionar os recursos. Para ver detalhes, consulte o artigo sobre como implementar recursos.

O que se segue?