Como criar uma configuração do Terraform

Ao selecionar soluções do catálogo privado para sua organização, é possível criar uma configuração do Terraform ou config, que os usuários implantarão usando o Terraform. Depois de criar a configuração, é possível compartilhá-la com os usuários atribuindo-a a 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 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

Como fazer upload dos arquivos de configuração para o Cloud Storage

Use o Cloud Storage para gerenciar seus arquivos de configuração do Terraform para o Catálogo Privado.

Crie um bucket do Cloud Storage

Para configurar o Cloud Storage, crie um bucket no mesmo projeto em que você ativou o Catálogo Privado para sua organização:

  1. No Console do Cloud, acesse a página Navegador do Cloud Storage.

    Acessar o navegador

  2. Clique em Criar bucket.
  3. Na página Criar um bucket, insira as informações do seu bucket. Para ir à próxima etapa, clique em Continuar.
  4. Clique em Criar.

Como ativar o controle de versão de objeto

Use o controle de versões de objetos do bucket para impedir que a configuração do Terraform seja excluída ou substituída. Para ativar o controle de versão de objeto, consulte a documentação do Cloud Storage sobre como usar o controle de versão de objetos.

Como conceder acesso ao bucket

Quando os usuários na sua organização implantam a configuração, a conta de serviço do Cloud Build deles precisa ter acesso de leitura ao bucket. Se o bucket for 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 um projeto diferente do Cloud, conceda acesso ao bucket usando um dos seguintes métodos:

  • Conceda o papel de visualizador de 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 implantam as 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 upload de um módulo do Terraform, que é um contêiner de todos os arquivos de configuração. O catálogo privado usa o módulo para gerar automaticamente um arquivo de esquema JSON para definir as variáveis da configuração.

Para módulos de casos de uso comuns do Google Cloud, consulte o Cloud Foundation Toolkit.

A amostra 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-9"
    }
  }

  network_interface {
    network = "default"
    access_config {
      // Ephemeral IP
    }
  }
}

Depois de criar seu módulo, compacte os arquivos em um arquivo zip. Verifique se o módulo está armazenado na raiz do arquivo ZIP (não use subdiretórios).

Em seguida, faça upload do arquivo ZIP para seu bucket. Para ver as etapas sobre como fazer o upload do arquivo ZIP, consulte a documentação do Cloud Storage sobre como fazer o upload de objetos.

Como criar a configuração no catálogo particular

Depois de configurar um bucket do Cloud Storage com o módulo do Terraform, crie uma solução de catálogo privado que inclua o bucket.

Para criar a configuração do Terraform como uma solução de catálogo privado:

  1. Acesse a página "Soluções" em "Administrador do Catálogo Particular" no Console do Cloud.
    Acessar a página "Soluções"

  2. Clique em Selecionar para escolher o projeto do Google Cloud.

  3. Clique em CRIAR SOLUÇÃO. Na lista suspensa, selecione Create config do Terraform.

  4. Digite um nome, uma descrição e a assinatura para a configuração do Terraform. Ela é uma breve descrição de uma solução que os usuários veem ao navegar no Catálogo Privado.

  5. No campo Link para a configuração do Terraform, forneça o link do bucket do Cloud Storage que contém seu arquivo ZIP para o módulo do Terraform, como gs://my-terraform-bucket/my-zip-file.zip.

  6. Opcionalmente, faça upload de um ícone para a solução. As dimensões recomendadas para um ícone são 80 x 80 pixels.

  7. Opcionalmente, insira um link de suporte e informações de contato do criador.

  8. Opcionalmente, adicione um link da documentação da solução.

  9. Clique em CRIAR.

A solução é criada e aparece na página Soluções de administrador do catálogo privado.

Veja na captura de tela a seguir como criar uma configuração do Terraform:

Criar uma configuração do Terraform

A seguir