Como criar uma configuração do Terraform
Ao selecionar soluções do catálogo de serviços para a organização, é possível criar uma configuração do Terraform, que os usuários implantam usando o Terraform. Depois de criar a configuração, é possível compartilhá-la com os usuários atribuindo-a aos catálogos.
Neste guia, você usa o Cloud Build para executar comandos do Terraform na versão mais recente da imagem do Docker do Terraform e usa o Cloud Storage para armazenar e gerenciar recursos do Terraform, como módulos e arquivos de estado.
Para recursos e orientações sobre como usar o Terraform, consulte Como usar o Terraform com o Google Cloud.
Antes de começar
É necessário ter os papéis de gerenciamento de identidade e acesso (IAM) abaixo:
- Administrador de catálogo
(
roles/cloudprivatecatalogproducer.admin
) OU Gerenciador de catálogo (roles/cloudprivatecatalogproducer.manager
) no projeto do Google Cloud em que O catálogo de serviços está ativado. - Administrador do Storage (
roles/storage.admin
) para o projeto em que o catálogo de serviços está ativado. Cloud Build Editor (
roles/cloudbuild.builds.editor
) para o projeto em que você quer criar a soluçãoSe você não tiver esses papéis, entre em contato com o administrador da organização para solicitar o acesso.
- Administrador de catálogo
(
Configure o Cloud Build no projeto em que você está criando a configuração:
-
Enable the Cloud Build API.
A ativação da API cria automaticamente uma conta de serviço do Cloud Build que você usa na etapa a seguir.
Conceda os seguintes papéis do IAM à conta de serviço:
- Editor do projeto
(
roles/editor
) - Administrador do Storage
(
roles/storage.admin
)
Para ver como conceder papéis, consulte Como configurar o acesso para a conta de serviço do Cloud Build.
- Editor do projeto
(
-
Como fazer upload dos arquivos de configuração para o Cloud Storage
Use o Cloud Storage para gerenciar os arquivos de configuração do Terraform para o catálogo de serviços.
Como criar um bucket do Cloud Storage
Para configurar o Cloud Storage, crie um bucket no mesmo projeto em que você ativou o catálogo de serviços para a organização:
- In the Google Cloud console, go to the Cloud Storage Buckets page.
- Click Create bucket.
- On the Create a bucket page, enter your bucket information. To go to the next
step, click Continue.
- For Name your bucket, enter a name that meets the bucket naming requirements.
-
For Choose where to store your data, do the following:
- Select a Location type option.
- Select a Location option.
- For Choose a default storage class for your data, select a storage class.
- For Choose how to control access to objects, select an Access control option.
- For Advanced settings (optional), specify an encryption method, a retention policy, or bucket labels.
- Click Create.
Como ativar o controle de versão de objeto
Use o controle de versões de objeto do bucket para evitar que a configuração do Terraform seja excluída ou substituída. Para ativar o controle de versões de objeto, consulte a documentação do Cloud Storage em Como usar o controle de versões de objeto.
Como conceder acesso ao bucket
Quando os usuários da organização implantam a configuração, a conta de serviço do Cloud Build precisa ter acesso de leitura ao bucket. Se o bucket estiver armazenado no mesmo projeto do Cloud em que os usuários implantam a configuração, a conta de serviço já tem esse acesso.
Se os usuários estiverem implantando a configuração em outro projeto do Cloud, conceda acesso ao bucket usando um dos seguintes métodos:
Conceda o papel Leitorde objetos do Storage (
roles/storage.objectViewer
) às contas de serviço do Cloud Build dos usuários ou a um recurso do Google Cloud em que os usuários implantem configurações do Terraform, como um projeto, uma pasta ou uma organização.Use uma lista de controle de acesso (ACL, na sigla em inglês) para gerenciar o acesso ao bucket.
Para detalhes sobre como gerenciar o acesso a buckets, consulte a Visão geral do controle de acesso do Cloud Storage.
Como criar e fazer upload de um módulo do Terraform
Depois de configurar o bucket do Cloud Storage, crie e faça o upload de um módulo do Terraform, que é um contêiner de todos os arquivos de configuração. O catálogo de serviços usa o módulo para gerar automaticamente um arquivo de esquema JSON, que define as variáveis da configuração.
Ao chamar módulos fora do diretório atual, use o
caminho remoto em vez de um caminho relativo. Por exemplo, em vez de source = "../../"
, use source = "GoogleCloudPlatform/cloud-run/google"
.
Para módulos de casos de uso comuns do Google Cloud, consulte o Cloud Foundation Toolkit.
O exemplo de código a seguir ilustra um arquivo de configuração do Terraform, main.tf
:
variable "machine_type" {
type = string
default = "n1-standard-1"
}
variable "zone" {
type = string
default = "us-central1-a"
}
variable "deployment_identifier" {
description = "The unique name for your instance"
type = string
}
resource "google_compute_instance" "default" {
name = "vm-${var.deployment_identifier}"
machine_type = var.machine_type
zone = var.zone
boot_disk {
device_name = "boot"
auto_delete = true
initialize_params {
image = "debian-cloud/debian-11"
}
}
network_interface {
network = "default"
access_config {
// Ephemeral IP
}
}
}
Depois de criar o módulo, compacte os arquivos em um arquivo ZIP. Verifique se o módulo está armazenado na raiz do arquivo ZIP.
Para garantir o armazenamento adequado do módulo ao compactar os arquivos do Terraform, execute o seguinte comando:
zip solution.zip file1.tf file2.tf file3.tf
Em seguida, faça upload do arquivo ZIP no bucket. Para ver as etapas de upload do arquivo ZIP, consulte a documentação do Cloud Storage sobre como fazer upload de objetos.
Como criar a configuração no catálogo de serviços
Depois de configurar um bucket do Cloud Storage com o módulo do Terraform, crie uma solução do catálogo de serviços que inclua o bucket.
Para criar a configuração do Terraform como uma solução do catálogo de serviços:
Acesse a página Soluções de administrador do catálogo de serviços no Console do Cloud.
Acessar a página "Soluções"Clique em Selecionar para escolher o projeto do Google Cloud.
Clique em CRIAR SOLUÇÃO. Na lista suspensa, selecione Criar configuração do Terraform.
Insira um nome, uma descrição e um tagline para a configuração do Terraform. O slogan é uma descrição breve de uma solução que os usuários veem ao navegar pelo catálogo de serviços.
No campo Link da configuração do Terraform, forneça o link para o bucket do Cloud Storage que contém o arquivo ZIP para o módulo do Terraform, como
gs://my-terraform-bucket/my-zip-file.zip
.Opcionalmente, faça upload de um ícone para a solução. As dimensões recomendadas para um ícone são 80 por 80 pixels.
Opcionalmente, insira um link de suporte e informações de contato do criador.
Opcionalmente, adicione um link da documentação da solução.
Selecione a versão do Terraform que você quer usar para implantar a solução.
Clique em CRIAR.
A solução é criada e aparece na página Soluções do Administrador do catálogo de serviços.
A captura de tela a seguir ilustra como criar uma configuração do Terraform:
Próximas etapas
- Atribua a configuração do Terraform a um catálogo para que os usuários na organização possam acessar e implantar a solução.
- Atualize uma solução com os detalhes mais recentes de configuração do Terraform.