Nesta página, descrevemos como usar o Infrastructure Manager para visualizar a implantação de recursos definidos em uma configuração do Terraform.
Uma visualização descreve as ações para ativar uma configuração específica do Terraform. Antes de criar ou atualizar uma implantação, você pode visualizá-la para verificar os recursos que serão provisionados.
Uma visualização executa o comando Terraform plan. Esta página pressupõe que você já conhece o Terraform. Para mais detalhes, consulte
Terraform e Infrastructure Manager.
Para criar uma visualização, a configuração do Terraform precisa ser compatível com uma das versões compatíveis do Terraform.
Antes de começar
- Ative o Infra Manager.
- Verifique se você tem as permissões do Identity and Access Management necessárias para criar visualizações:
roles/config.admin. - Verifique se você tem uma conta de serviço com as permissões necessárias. Para mais detalhes, consulte Configurar a conta de serviço.
- Identifique a configuração do Terraform a ser visualizada. Verifique se essa configuração do Terraform está em conformidade com as restrições, incluindo se ela não contém dados sensíveis.
Se você quiser armazenar a configuração do Terraform em um bucket de armazenamento, verifique se ela foi enviada para um bucket do Cloud Storage. Consulte Fazer upload de uma configuração para um bucket de armazenamento para mais detalhes.
Um bucket de armazenamento permite controlar o acesso à configuração. Você também pode implantar uma configuração do Terraform armazenada em um repositório Git ou na sua máquina local.
Visualizar uma nova implantação
A configuração do Terraform que você visualiza pode estar em um bucket de armazenamento ou em um repositório Git.
Visualizar usando uma configuração do Terraform armazenada em um bucket do Cloud Storage
Verifique se a configuração do Terraform foi enviada para um bucket do Cloud Storage. Consulte Fazer upload de uma configuração para um bucket de armazenamento para mais detalhes.
Um bucket de armazenamento permite controlar o acesso à configuração. Você também pode implantar uma configuração do Terraform armazenada em um repositório Git ou na sua máquina local.
Para 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_MAINTAINEDSubstitua:
- PROJECT_ID é o ID do projeto em que o Infrastructure Manager é executado.
- LOCATION é o local em que o Infra Manager é executado. Consulte Locais do Infrastructure Manager para conferir a lista de locais válidos.
- PREVIEW_ID é o identificador de visualização especificado por você. Consulte Nome da visualização para mais detalhes sobre as restrições no identificador de visualização.
- SERVICE_ACCOUNT é o nome da conta de serviço que você usa para chamar o Infra Manager.
- SERVICE_ACCOUNT_PROJECT_ID é o ID do projeto da conta de serviço. É comum que esse seja o mesmo projeto em que o Infra Manager é executado.
- 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 versão.
Se o bucket de armazenamento for o caminho raiz da configuração do Terraform, então OBJECT_NAME será opcional.
INPUT_1_NAME=VALUE e INPUT_2_NAME=VALUE: qualquer valor 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 vai usar para criar a implantação. Consulte Versão compatível do Terraform 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_MAINTAINEDpara 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.
Os campos da implantação, como a configuração do Terraform, as variáveis e a conta de serviço, são mesclados automaticamente na visualização, a menos que você especifique novos valores no comando de visualização.
Agora que você criou uma visualização, é possível exportar e conferir os resultados para analisar o plano da implantação.
Visualizar usando uma configuração do Terraform armazenada em um repositório Git
Ao atualizar uma implantação, alguns dos recursos atuais podem não mudar. A visualização de uma atualização mostra quais recursos serão provisionados ou excluídos e quais não serão modificados.
Para atualizar uma implantação armazenada em um repositório Git:
Se você estiver usando um repositório Git particular, verifique se você se conectou ao host e ao repositório do GitHub usando o Cloud Build para fornecer acesso do Infra Manager ao seu repositório.
Para visualizar a implantaçã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
Substitua:
- PROJECT_ID é o ID do projeto em que o Infrastructure Manager é executado.
- LOCATION é o local em que o Infra Manager é executado. Consulte Locais do Infrastructure Manager para conferir a lista de locais válidos.
- PREVIEW_ID é o identificador de visualização especificado por você. Consulte Nome da visualização para mais detalhes sobre as restrições no identificador de visualização.
- SERVICE_ACCOUNT é o nome da conta de serviço que você usa para chamar o Infra Manager.
- SERVICE_ACCOUNT_PROJECT_ID é o ID do projeto da conta de serviço. É comum que esse seja o mesmo projeto em que 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 você não especificar a referência, a ramificação padrão configurada do repositório Git será usada.
INPUT_1_NAME=VALUE e INPUT_2_NAME=VALUE: qualquer valor 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 vai usar para criar a implantação. Consulte Versão compatível do Terraform 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_MAINTAINEDpara 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.
Os campos da implantação, como a configuração do Terraform, as variáveis e a conta de serviço, são mesclados automaticamente na visualização, a menos que você especifique novos valores no comando de visualização.
Agora que você criou uma visualização, é possível exportar e conferir os resultados para analisar o plano da implantação.
Depois de visualizar uma implantação, você pode criar a implantação para provisionar os recursos. Para mais detalhes, consulte Implantar recursos.
A seguir
- Exportar e conferir os resultados da visualização
- Usar o Infra Manager para implantar recursos.
- Automatizar implantações.
- Saiba mais sobre o Terraform com o Infra Manager.