Esta página descreve como usar o Infrastructure Manager para atualizar uma implementação. Seguem-se alguns casos em que pode atualizar uma implementação:
Para repor a sua infraestrutura num estado escolhido.
Quando cria uma implementação, os recursos podem ter sido alterados após algum tempo. Por exemplo, alguns dos recursos podem ter sido modificados por alguém que trabalha na consola. Pode atualizar a implementação através da configuração do Terraform original para a devolver ao estado escolhido.
Para implementar alterações à infraestrutura.
Depois de criar uma implementação, pode querer modificar a infraestrutura. Por exemplo, adicionar novos recursos ou alterar parte da configuração. Pode atualizar a implementação através de uma configuração do Terraform que descreve a nova infraestrutura.
Esta página pressupõe que tem conhecimentos sobre o Terraform. Para ver detalhes, consulte os artigos Terraform e Infra Manager.
Antes de começar
- Certifique-se de que o Infra Manager está ativado.
- Certifique-se de que tem as autorizações de IAM necessárias para criar implementações:
roles/config.admin
- 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.
- Identifique a implementação do Infra Manager a atualizar.
Identifique a configuração do Terraform a implementar para a atualização. Qualquer configuração pode ser usada para uma revisão. Esta configuração é frequentemente uma versão idêntica ou atualizada da configuração já implementada.
Certifique-se de que esta configuração do Terraform está em conformidade com as restrições, incluindo que a configuração não contém dados confidenciais.
Confirme a quota da sua organização para produtos associados à infraestrutura pretendida. Pode ter erros de implementação se a infraestrutura pretendida exceder a quota da sua organização para os produtos que a implementação usa. Consulte as quotas e os limites para mais informações.
Tome as medidas necessárias para a migração de dados ou a continuidade do serviço para os recursos que está a modificar.
Se quiser pré-visualizar a atualização antes de configurar os recursos, consulte o artigo Pré-visualizar uma atualização de uma implementação.
Conceda autorizações específicas da configuração
Para implementar Google Cloud recursos especificados na configuração do Terraform, a conta de serviço que usa para chamar o Infra Manager precisa de autorizações específicas para:
Google Cloud recursos definidos na configuração que está a usar para a revisão.
Se a configuração que está a usar para a revisão definir recursos diferentes dos recursos definidos na configuração usada para a implementação, precisa de autorizações para os recursos definidos em ambas as configurações.
As autorizações específicas dos recursos definidos na configuração são adicionais às autorizações de que a conta de serviço precisa para usar o serviço Infra Manager.
Para ver detalhes sobre a concessão de autorizações para os Google Cloud recursos e garantir que tem acesso aos projetos necessários, consulte o artigo Configure a conta de serviço.
Associe o seu repositório Git privado e anfitrião ao Cloud Build
Se estiver a implementar uma configuração do Terraform a partir de um repositório Git privado, tem de associar o seu anfitrião e repositório Git ao Cloud Build.
GitHub
GitHub Enterprise
GitLab
GitLab Enterprise
Developer Connect
Atualizar uma implementação
Para atualizar uma implementação, implemente uma configuração com o mesmo nome de implementação, o que cria uma revisão. Para mais detalhes, consulte o artigo Vista geral das implementações e revisões.
Se não tiver uma implementação existente, consulte o artigo Implemente infraestrutura com o Infra Manager.
Para pré-visualizar uma atualização sem aprovisionar recursos, consulte o artigo Pré-visualize uma implementação.
Selecione o separador com o fluxo de trabalho escolhido para ver mais informações sobre como atualizar uma implementação.
Consola
Esta secção descreve a atualização de uma configuração do Terraform através do Infra Manager na Google Cloud consola.
Implemente a configuração e crie uma revisão:
- Na Google Cloud consola, aceda à página Infra Manager.
- Na página Implementações, procure na coluna ID e clique na implementação que quer atualizar.
- Na página com o título do ID de implementação, clique em Editar.
- Na página Detalhes da implementação, pode modificar os campos Versão do Terraform, Conta de serviço e Origem da configuração do Terraform. Se fornecer um repositório Git privado, certifique-se de que associou o seu anfitrião e repositório ao Cloud Build.
Clique em Continuar.
- Na página Detalhes do Terraform, pode modificar os Valores de entrada para a configuração do Terraform. Clique em Continuar.
- Na página Detalhes avançados, pode modificar os campos Etiquetas e anotações, Conjuntos de trabalhadores e Bucket do Cloud Storage de artefactos.
- Clique em Atualizar quando estiver satisfeito com as alterações que fez à implementação para iniciar o processo de atualização.
Para mais informações sobre os parâmetros de implementação e os respetivos formatos, consulte a documentação Implementar recursos.
CLI gcloud
Esta secção descreve a implementação de uma configuração do Terraform armazenada num contentor do Cloud Storage. Um contentor de armazenamento permite-lhe controlar o acesso à configuração.
- Certifique-se de que a configuração do Terraform está num contentor do Cloud Storage. Consulte o artigo Carregue uma configuração para um contentor de armazenamento para ver mais detalhes.
Se o contentor de armazenamento estiver num projeto diferente do projeto onde está a executar o Infra Manager, tem de garantir que a conta de serviço do Infra Manager tem autorização de leitura para o contentor. Consulte o artigo Configure a conta de serviço para ver mais detalhes.
Se o contentor de armazenamento estiver no mesmo projeto que o Infra Manager, a autorização de leitura para o contentor já está ativada.
Implemente 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
- PROJECT_ID: o ID do projeto onde o Infra Manager é executado.
- LOCATION: a localização onde o Infra Manager é executado. Consulte Localizações do Infra Manager para ver a lista de localizações válidas.
- DEPLOYMENT_ID: o identificador de implementação que especificar. Consulte o Nome da implementação para ver detalhes sobre as restrições do identificador de implementação.
- SERVICE_ACCOUNT_PROJECT_ID é o ID do projeto da conta de serviço. É comum que este seja o mesmo projeto onde o Infra Manager é executado.
- SERVICE_ACCOUNT: o nome da conta de serviço que usa para chamar o Infra Manager.
- 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 raiz da configuração do Terraform, OBJECT_NAME é opcional.
- Opcional: QUOTA_VALIDATION: o valor que determina se a validação de quotas para recursos nos seus ficheiros de configuração do Terraform está ativada ou aplicada quando cria uma implementação. Os valores possíveis incluem:
ENABLED
: ative a validação da quota de computação para recursos em ficheiros de configuração do Terraform. Oferece visibilidade sobre recursos com quotas insuficientes.ENFORCED
: Aplique a validação de quotas para que a implementação falhe se não existir quota suficiente disponível para a infraestrutura definida no ficheiro de configuração do Terraform.
Se QUOTA_VALIDATION não estiver definido, a validação de quotas nos ficheiros de configuração do Terraform é desativada. Este é o valor predefinido. A validação de quotas aplica-se a recursos Google Cloud limitados. Para mais informações, consulte o artigo Quotas e limites.
INPUT_1_NAME e INPUT_2_NAME: 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 forem 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 o artigo 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.
CLI gcloud
Esta secção descreve como trabalhar com uma configuração do Terraform armazenada num repositório Git.
- Certifique-se de que instalou o Git.
- Se a sua configuração do Terraform estiver armazenada num
repositório Git privado , certifique-se de que o anfitrião e o repositório Git estão ligados ao Cloud Build. Implemente 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
- PROJECT_ID: o ID do projeto onde o Infra Manager é executado.
- LOCATION: a localização onde o Infra Manager é executado. Consulte Localizações do Infra Manager para ver a lista de localizações válidas.
- DEPLOYMENT_ID: o identificador de implementação que especificar. Consulte o Nome da implementação para ver detalhes sobre as restrições do identificador de implementação.
- SERVICE_ACCOUNT_PROJECT_ID é o ID do projeto da conta de serviço. É comum que este seja o mesmo projeto onde o Infra Manager é executado.
- SERVICE_ACCOUNT: o nome da conta de serviço que 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 Git da configuração. A referência é opcional. Se não especificar a referência, é usado o ramo predefinido configurado do repositório Git.
- Opcional: QUOTA_VALIDATION: o valor que determina se a validação de quotas para recursos nos seus ficheiros de configuração do Terraform está ativada ou aplicada quando cria uma implementação. Os valores possíveis incluem:
ENABLED
: ative a validação da quota de computação para recursos em ficheiros de configuração do Terraform. Oferece visibilidade sobre recursos com quotas insuficientes.ENFORCED
: Aplique a validação de quotas para que a implementação falhe se não existir quota suficiente disponível para a infraestrutura definida no ficheiro de configuração do Terraform.
Se QUOTA_VALIDATION não estiver definido, a validação de quotas nos ficheiros de configuração do Terraform é desativada. Este é o valor predefinido. A validação de quotas aplica-se a recursos Google Cloud limitados. Para mais informações, consulte o artigo Quotas e limites.
INPUT_1_NAME e INPUT_2_NAME: 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 forem 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 o artigo 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.
CLI gcloud
Esta secção descreve como trabalhar com uma configuração do Terraform armazenada na sua máquina local.
- Se usar o Cloud Shell, tem de carregar a configuração para o Cloud Shell. Para ver detalhes, consulte o artigo Faça a gestão de ficheiros com o Cloud Shell.
Implemente 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
- PROJECT_ID: o ID do projeto onde o Infra Manager é executado.
- LOCATION: a localização onde o Infra Manager é executado. Consulte Localizações do Infra Manager para ver a lista de localizações válidas.
- DEPLOYMENT_ID: o identificador de implementação que especificar. Consulte o Nome da implementação para ver detalhes sobre as restrições do identificador de implementação.
- SERVICE_ACCOUNT_PROJECT_ID é o ID do projeto da conta de serviço. É comum que este seja o mesmo projeto onde o Infra Manager é executado.
- SERVICE_ACCOUNT: o nome da conta de serviço que usa para chamar o Infra Manager.
- LOCAL_DIRECTORY: o diretório local que armazena a configuração do Terraform. Se estiver a usar o Cloud Shell, este é o diretório no Cloud Shell onde a configuração está armazenada.
- Opcional: QUOTA_VALIDATION: o valor que determina se a validação de quotas para recursos nos seus ficheiros de configuração do Terraform está ativada ou aplicada quando cria uma implementação. Os valores possíveis incluem:
ENABLED
: ative a validação da quota de computação para recursos em ficheiros de configuração do Terraform. Oferece visibilidade sobre recursos com quotas insuficientes.ENFORCED
: Aplique a validação de quotas para que a implementação falhe se não existir quota suficiente disponível para a infraestrutura definida no ficheiro de configuração do Terraform.
Se QUOTA_VALIDATION não estiver definido, a validação de quotas nos ficheiros de configuração do Terraform é desativada. Este é o valor predefinido. A validação de quotas aplica-se a recursos Google Cloud limitados. Para mais informações, consulte o artigo Quotas e limites.
INPUT_1_NAME e INPUT_2_NAME: 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 forem 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 o artigo 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.
O que se segue?
- Saiba mais sobre o Terraform com Google Cloud.
- Automatize as implementações.
- Veja o estado de uma implementação.
- Veja os recursos implementados.
- Elimine uma implementação.