Pré-visualize uma atualização de 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 IAM 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.

Pré-visualize uma atualização de uma implementação

A configuração do Terraform que usa para atualizar uma implementação pode estar num contentor de armazenamento ou num repositório Git.

Também usa esta configuração do Terraform para pré-visualizar a atualização.

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

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.

  1. Identifique a implementação que quer atualizar.

  2. 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.

  3. 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 \
        --deployment=projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \
        --gcs-source gs://BUCKET_NAME/OBJECT_NAME \
        --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \
        --tf-version-constraint=TERRAFORM_VERSION
        --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.
    • DEPLOYMENT_ID é o identificador de implementação da implementação que quer atualizar.
    • 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: 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.

  1. Se a sua configuração do Terraform estiver armazenada num repositório Git privado e ainda não o tiver feito, certifique-se de que se ligou ao seu anfitrião do GitHub e repositório do GitHub através do Cloud Build para conceder acesso do Infra Manager ao seu repositório.
  2. Para atualizar uma 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 \
        --deployment=projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \
        --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
        --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.
    • DEPLOYMENT_ID é o identificador de implementação da implementação que quer atualizar.
    • 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: 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.

O que se segue?