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
- Ative o Infra Manager.
- 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
. - 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 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.
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
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.
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:
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.
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?
- Exporte e veja os resultados da pré-visualização
- Use o Infra Manager para implementar recursos.
- Automatize as implementações.
- Saiba mais sobre o Terraform com o Infra Manager.