Esta página descreve como usar o Infrastructure Manager para aprovisionar um conjunto de Google Cloud recursos definidos numa configuração do Terraform.
Para pré-visualizar uma implementação sem aprovisionar recursos, consulte o artigo Pré-visualizar uma implementação.
Pode implementar em vários projetos e várias localizações. A conta de serviço precisa de autorizações para os recursos e os projetos onde os recursos estão implementados. Consulte o artigo Controlo de acesso com a IAM para ver a lista de autorizações.
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
- Ative o Infra Manager.
- 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 configuração do Terraform a implementar. Certifique-se de que esta configuração do Terraform está em conformidade com as restrições. Em concreto, certifique-se de que a configuração não contém dados confidenciais.
- Se quiser pré-visualizar a implementação antes de configurar os recursos, consulte o artigo Pré-visualize uma implementação.
- 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.
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 das autorizações necessárias específicas dos recursos que está a implementar.
Estas autorizações são adicionais às autorizações necessárias 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
Crie uma implementação com uma configuração do Terraform
Pode usar o Infra Manager para implementar uma configuração do Terraform de várias formas:
- Recomendado: use o Infra Manager na Google Cloud consola para selecionar uma origem, ver detalhes da implementação, pré-visualizar e implementar configurações do Terraform. Pode usar o Infra Manager a partir da consola para fazer a implementação a partir de contentores do Cloud Storage e repositórios Git. Google Cloud
- Use o Infra Manager na CLI do Google Cloud para implementar configurações do Terraform a partir de:
- Contentores do Cloud Storage
- Repositórios Git
- Diretórios locais
Consulte Módulos e planos do Terraform para Google Cloud para ver exemplos e configurações do Terraform de modelos que pode usar com o Infra Manager.
Selecione o separador com o fluxo de trabalho escolhido para mais informações sobre a criação de uma implementação.
Consola
Esta secção descreve a implementação de uma configuração do Terraform através do Infra Manager na Google Cloud consola.
- Na Google Cloud consola, aceda à página Infra Manager.
- Clique em Criar para criar uma nova implementação.
Na página Detalhes da implementação, defina os parâmetros iniciais da implementação.
Substituição:
- ID de implementação: no campo ID de implementação, introduza um nome descritivo para a sua implementação. Consulte a documentação sobre o nome da implementação para ver mais detalhes sobre as restrições de nomenclatura.
- Região: escolha uma região suportada no menu pendente.
- Versão do Terraform: escolha uma versão suportada do Terraform no menu pendente. A lista de versões do Terraform disponíveis é preenchida automaticamente com base na região que selecionou.
- Conta de serviço: selecione uma conta de serviço existente ou crie uma nova. O Infra Manager valida automaticamente as autorizações com base na infraestrutura descrita na sua configuração do Terraform. Consulte o artigo Configure a conta de serviço para mais informações sobre como trabalhar com contas de serviço e o Infra Manager.
- Origem da configuração do Terraform: clique no botão para selecionar Git ou Cloud Storage como origem da configuração do Terraform que quer implementar.
- Para o Git, substitua:
- Repositório Git: indique um URL, um ramo ou uma etiqueta de um repositório Git público ou privado.
Se indicar um repositório Git privado, certifique-se de que associou o seu anfitrião e repositório ao Cloud Build. - Opcional: diretório Git: o diretório no repositório Git que tem a configuração do Terraform.
- Opcional: referência do Git: a referência do Git da configuração. Se não especificar uma referência, é usado o ramo configurado predefinido do repositório Git.
- Repositório Git: indique um URL, um ramo ou uma etiqueta de um repositório Git público ou privado.
- Para o contentor do Cloud Storage, substitua:
- Origem: o nome do contentor de armazenamento onde a configuração está armazenada.
- Para o Git, substitua:
Na página Detalhes do Terraform, use os campos Chave e Valor para preencher a lista de valores de entrada na sua configuração do Terraform.
Os valores podem ser quaisquer valores de entrada na configuração do Terraform, incluindo os que não estão definidos por predefinição. Se todos os valores de entrada estiverem definidos por predefinição na configuração do Terraform, estes valores são opcionais. Clique em Continuar.
Na página Detalhes avançados, defina parâmetros opcionais para a sua implementação.
Substituição:
- Etiquetas: as etiquetas e as anotações são pares de chave-valor de texto de forma livre. Pode usá-los para anexar informações arbitrárias associadas ao recurso. Para mais informações, consulte a documentação sobre anotações.
- Grupo de trabalhadores: o recurso do grupo de trabalhadores no qual a tarefa do Cloud Build vai ser executada.
O formato do conjunto de trabalhadores é
projects/{project}/locations/{location}/workerPools/{workerPoolId}
. - Contentor do Cloud Storage de artefactos: a localização dos registos e artefactos do Cloud Build no Cloud Storage. O formato do caminho é
gs://{bucket}/{folder}
.
- Clique em Criar implementação para iniciar a implementação da configuração do Terraform. Na página Implementações, a sua implementação é adicionada à lista juntamente com o respetivo Estado. Para mais detalhes sobre a implementação, selecione-a para navegar para a página Detalhes da implementação.
- Êxito! Implementou a sua configuração do Terraform através do Infra Manager.
Clique em Continuar.
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 do Terraform:
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 do Terraform:
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 do Terraform:
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.
- Atualize uma implementação.
- Veja o estado de uma implementação.
- Veja os recursos implementados.
- Elimine uma implementação.