Utilizando o provedor do Aria Automation no Terraform

Utilizando o provedor do Aria Automation no Terraform

O Terraform é uma ferramenta de código aberto para automação de infraestrutura. Ele permite definir, provisionar e gerenciar recursos de infraestrutura de forma declarativa usando código. Dentro deste contexto temos os provedores que funcionam como se fossem plugins, permitindo que o Terraform interaja com diferentes APIs de provedores de serviço como AWS, Google, Azure e claro, VMware 🙂

A ideia deste artigo é mostrar como começar a utilizar o Terraform com o provedor do Aria Automation (vRA). Antes de mais nada é importante ler os detalhes na página do provedor. Temos aqui dois requisitos: Terraform 0.12 (ou superior) e Go 1.20. Vou assumir que você já possui os requisitos.

Todos os testes que fiz foram em uma máquina Windows, mas poderia ser Linux ou Mac sem problemas. Boooora ao que interessa. Basicamente é necessário criar um arquivo chamado main.tf na mesma pasta onde o executável do terraform está. Depois, basta colar o código abaixo lá. Neste exemplo iremos criar um projeto no vRA utilizando o Terraform com o provedor do vRA 8.

terraform {
  required_providers {
    vra = {
      source = "vmware/vra"
    }
  }
}

provider "vra" {
  url           = var.url
  refresh_token = var.refresh_token
  insecure      = var.insecure
}

data "vra_zone" "this" {
  name = var.zone_name
}

resource "vra_project" "this" {
  name        = var.project_name
  description = var.project_desc

  zone_assignments {
    zone_id          = data.vra_zone.this.id
    priority         = 0
    max_instances    = 0
    cpu_limit        = 0
    memory_limit_mb  = 0
    storage_limit_gb = 0
  }

  shared_resources = true

  administrator_roles {
    email = "SEU EMAIL" # IDM User
    type = "user"
  }

  operation_timeout = 6000

  placement_policy = "DEFAULT"
}

Agora crie outro arquivo com o nome variables.tf e cole o script abaixo. Importante: aqui tem algumas formas de obter o refresh token do vRA. Sinceramente, no laboratório eu faço um POST na URL /csp/gateway/am/api/login?access_token enviando usuário e senha utilizando o postman mesmo.

##### ARIA AUTOMATION (VRA) ENVIRONMENT #####
variable "url" {
  type    = string
  default = "https://seu-vra-lindao" URL do seu vRA
}

variable "refresh_token" {
  type    = string
  default = "xyz" # refresh token do vRA
}

variable "insecure" {
  type    = bool
  default = "true"
}

##### PROJECT AND CLOUD ZONE #####

variable "project_name" {
  type    = string
  default = "NOVO PROJETO"
}

variable "project_desc" {
  type    = string
  default = "descricao do novo projeto"
}

variable "zone_name" {
  type    = string
  default = "Caverna vCenter 01 - Prod" # Nome da sua cloud zone
}

No caso do Windows, a pasta deve ter os dois scripts que criamos anteriormente e o terraform.exe.

Agora basta abrir o PowerShell, navegar até a pasta e executar .\terraform.exe init. Basicamente este comando inicializa o terraform, validando se existe algum erro nos script e baixando os provedores necessários (acesso a internet necessário). Se tudo funcionar corretamente, você deve ver uma tela similar a esta e mais arquivos dentro da pasta principal do projeto.

Agora basta executar .\terraform apply para que o terraform aplique o que escrevemos nos scripts, ou seja, se conecte ao vRA via API e crie um projeto chamado de NOVO PROJETO associando um usuário administrador e uma cloud zone. Se não quiser digitar YES para confirmar, basta utilizar o comando .\terraform apply -auto-approve.

Se tudo funcionar bem, então será possível visualizar o NOVO PROJETO configurado com um usuário administrador e uma cloud zone.

Aqui você encontra vários exemplos bem legais do que é possível fazer com o provedor do vRA no Terraform. É isso aí, pessoal. Até a próxima!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *