Atualizar uma implantação

Nesta página, descrevemos como usar o Infrastructure Manager para atualizar uma implantação. Casos em que você pode atualizar uma implantação:

  • Para retornar sua infraestrutura a um estado escolhido.

    Quando você cria uma implantação, depois de algum tempo, os recursos podem mudar. Por exemplo, alguns dos recursos podem ter sido modificados por alguém que trabalha no console. É possível atualizar a implantação usando a configuração original do Terraform para retornar ao estado escolhido.

  • Para implementar mudanças na infraestrutura.

    Depois de criar uma implantação, talvez você queira modificar a infraestrutura. Por exemplo, adicionar novos recursos ou mudar parte da configuração. É possível atualizar a implantação usando uma configuração do Terraform que descreve a nova infraestrutura.

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

Antes de começar

  1. Verifique se o Infra Manager está ativado.
  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 detalhes, consulte Configurar a conta de serviço.
  4. Identifique a implantação do Infra Manager a ser atualizada.
  5. Identifique a configuração do Terraform a ser implantada para a atualização. Qualquer configuração pode ser usada para uma revisão. Essa configuração geralmente é uma versão idêntica ou atualizada da configuração já implantada.

    Verifique se essa configuração do Terraform está em conformidade com as restrições, incluindo que a configuração não contém dados sensíveis.

  6. Confirme a cota da sua organização para produtos associados à infraestrutura pretendida. Você pode enfrentar erros de implantação se a infraestrutura pretendida exceder a cota da sua organização para os produtos usados na implantação. Consulte cotas e limites para mais informações.

  7. Tome as medidas necessárias para migração de dados ou continuidade do serviço para os recursos que você está modificando.

  8. Se você quiser visualizar a atualização antes de configurar os recursos, consulte Visualizar uma atualização de uma implantação.

Conceder permissões específicas à 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 de permissões específicas para:

  • Google Cloud recursos definidos na configuração que você está usando para a revisão.

  • Se a configuração usada para a revisão definir recursos diferentes da configuração usada para a implantação, você precisará de permissões para os recursos definidos em ambas as configurações.

As permissões específicas para os recursos definidos na configuração são adicionais às permissões necessárias para a conta de serviço usar o serviço do Infra Manager.

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

Conectar seu repositório e host Git particulares ao Cloud Build

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

Atualizar uma implantação

Para atualizar uma implantação, implante uma configuração usando o mesmo nome de implantação, o que cria uma revisão. Para mais detalhes, consulte Visão geral de implantações e revisões.

Se você não tiver uma implantação, consulte Implantar infraestrutura usando o Infra Manager.

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

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

Console

Nesta seção, descrevemos como atualizar uma configuração do Terraform usando o Gerenciador de infraestrutura no console do Google Cloud .

Implante a configuração e crie uma revisão:

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

    Acessar o Infra Manager

  2. Na página Implantações, procure a coluna ID e clique na implantação que você quer atualizar.
  3. Na página com o ID da implantação, clique em Editar.
  4. Na página Detalhes da implantação, é possível modificar os campos Versão do Terraform, Conta de serviço, e Origem da configuração do Terraform. Se você fornecer um repositório Git particular, verifique se conectou seu host e repositório ao Cloud Build.

    Clique em Continuar.

  5. Na página Detalhes do Terraform, é possível modificar os Valores de entrada da configuração do Terraform. Clique em Continuar.
  6. Na página Detalhes avançados, é possível modificar os campos Rótulos e anotações, Pools de workers e Bucket do Cloud Storage de artefatos.
  7. Clique em Atualizar quando estiver satisfeito com as mudanças feitas na implantação para iniciar o processo de atualização.

Para mais informações sobre parâmetros de implantação e formatos, consulte a documentação Implantar recursos.

CLI da gcloud

Esta seção descreve a implantação de 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 do bucket já estará ativada.

  3. Implante a configuração e crie uma revisão:

    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 onde o Infra Manager é executado. Consulte Locais do Infra Manager para ver a lista de locais válidos.
  • DEPLOYMENT_ID: o identificador de implantação especificado. Consulte Nome da implantação para mais detalhes sobre as restrições do identificador de implantação.
  • SERVICE_ACCOUNT_PROJECT_ID é o ID do projeto da conta de serviço. Geralmente, é o mesmo projeto em que o Infra Manager é executado.
  • SERVICE_ACCOUNT: o nome da conta de serviço usada 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:
    • ENABLED: ativa a validação de cota de computação para recursos em arquivos de configuração do Terraform. Fornece visibilidade dos recursos com cotas insuficientes.
    • ENFORCED: aplique 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 Google Cloud . Para mais informações, consulte Cotas e limites.

  • INPUT_1_NAME e INPUT_2_NAME: todos os valores 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 que o Infra Manager usa para criar a implantação. Consulte a versão do Terraform compatível para conferir a lista de versões compatíveis. Se você remover essa flag opcional, a versão mais recente compatível do Terraform será usada.
  • 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 Terraform mantido pela HashiCorp. Para mais informações, consulte Usar o provedor do Terraform para Google Cloud.

CLI da gcloud

Esta seção descreve como trabalhar com uma configuração do Terraform armazenada em um repositório do Git.

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

    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 onde o Infra Manager é executado. Consulte Locais do Infra Manager para ver a lista de locais válidos.
  • DEPLOYMENT_ID: o identificador de implantação especificado. Consulte Nome da implantação para mais detalhes sobre as restrições do identificador de implantação.
  • SERVICE_ACCOUNT_PROJECT_ID é o ID do projeto da conta de serviço. Geralmente, é o mesmo projeto em que o Infra Manager é executado.
  • SERVICE_ACCOUNT: o nome da conta de serviço usada 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, será usada a ramificação padrão configurada do repositório Git.
  • 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:
    • ENABLED: ativa a validação de cota de computação para recursos em arquivos de configuração do Terraform. Fornece visibilidade dos recursos com cotas insuficientes.
    • ENFORCED: aplique 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 Google Cloud . Para mais informações, consulte Cotas e limites.

  • INPUT_1_NAME e INPUT_2_NAME: todos os valores 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 que o Infra Manager usa para criar a implantação. Consulte a versão do Terraform compatível para conferir a lista de versões compatíveis. Se você remover essa flag opcional, a versão mais recente compatível do Terraform será usada.
  • 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 Terraform mantido pela HashiCorp. Para mais informações, consulte Usar o provedor do Terraform para Google Cloud.

CLI da gcloud

Esta seção descreve como trabalhar com uma configuração do Terraform armazenada na máquina local.

  1. Se você usa o Cloud Shell, faça upload da configuração para o Cloud Shell. Para mais detalhes, consulte Gerenciar arquivos com o Cloud Shell.
  2. Implante a configuração e crie uma revisão:

    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 onde o Infra Manager é executado. Consulte Locais do Infra Manager para ver a lista de locais válidos.
  • DEPLOYMENT_ID: o identificador de implantação especificado. Consulte Nome da implantação para mais detalhes sobre as restrições do identificador de implantação.
  • SERVICE_ACCOUNT_PROJECT_ID é o ID do projeto da conta de serviço. Geralmente, é o mesmo projeto em que o Infra Manager é executado.
  • SERVICE_ACCOUNT: o nome da conta de serviço usada 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:
    • ENABLED: ativa a validação de cota de computação para recursos em arquivos de configuração do Terraform. Fornece visibilidade dos recursos com cotas insuficientes.
    • ENFORCED: aplique 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 Google Cloud . Para mais informações, consulte Cotas e limites.

  • INPUT_1_NAME e INPUT_2_NAME: todos os valores 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 que o Infra Manager usa para criar a implantação. Consulte a versão do Terraform compatível para conferir a lista de versões compatíveis. Se você remover essa flag opcional, a versão mais recente compatível do Terraform será usada.
  • 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 Terraform mantido pela HashiCorp. Para mais informações, consulte Usar o provedor do Terraform para Google Cloud.

A seguir