Skip to main content

Criação de VM com Terraform

Objetivo

Este guia demonstra como criar uma máquina virtual (VM) na Magalu Cloud (MGC) utilizando o Terraform, a partir de uma imagem customizada previamente cadastrada no catálogo. A plataforma valida automaticamente se a configuração da VM atende aos requisitos mínimos definidos na imagem (vCPU, RAM e disco).

Pré-requisitos

  • Acesso à Magalu Cloud com permissões necessárias para criar VMs.
  • Uma imagem customizada ativa no catálogo do seu tenant na MGC.
  • Terraform instalado em sua estação de trabalho.
  • Uma chave SSH cadastrada na Magalu Cloud.

Como fazer

1. Criar a estrutura do projeto Terraform

terraform-vm/
├── main.tf
├── variables.tf
└── terraform.tfvars

2. Configurar o provider no main.tf

terraform {
required_providers {
mgc = {
source = "magalucloud/mgc"
version = ">= 0.30.0"
}
}
}

provider "mgc" {
api_key = var.api_key
region = var.region
}

3. Adicionar o recurso de VM ao main.tf

# Consulta o ID da imagem customizada pelo nome
data "mgc_vm_images" "custom" {
name = var.image_name
}

# Consulta a chave SSH previamente cadastrada na MGC
data "mgc_ssh_keys" "key" {
name = var.ssh_key_name
}

# Cria a VM a partir da imagem customizada
resource "mgc_virtual_machine_instances" "vm" {
name = var.vm_name
machine_type = { name = var.machine_type }
image = { name = data.mgc_vm_images.custom.images[0].name }
ssh_key_name = data.mgc_ssh_keys.key.ssh_keys[0].name
availability_zone = var.availability_zone
}

4. Definir variáveis no variables.tf

variable "api_key" {
type = string
sensitive = true
}

variable "region" {
type = string
default = "br-se1"
}

variable "availability_zone" {
type = string
default = "br-se1-b"
}

variable "image_name" {
type = string
description = "Nome da imagem customizada cadastrada no catálogo MGC"
}

variable "machine_type" {
type = string
default = "BV2-2-20"
}

variable "ssh_key_name" {
type = string
description = "Nome da chave SSH cadastrada na MGC"
}

variable "vm_name" {
type = string
default = "vm-custom-image"
}

5. Preencher os valores no terraform.tfvars

api_key = "SUA_CHAVE_API"
image_name = "minha-imagem-ubuntu"
machine_type = "BV2-2-20"
ssh_key_name = "minha-chave-ssh"
vm_name = "vm-redis-producao"
availability_zone = "br-se1-b"

6. Aplicar a configuração

# Inicializar o Terraform e baixar o provider MGC
terraform init

# Visualizar o plano de execução antes de aplicar
terraform plan

# Criar a VM
terraform apply

ℹ️ Info: A plataforma valida automaticamente se a VM solicitada atende aos requisitos mínimos definidos na imagem (vCPU, RAM e disco). Se o machine_type escolhido não atender a esses requisitos, a criação será rejeitada com uma mensagem de erro.

Detalhes técnicos

VariávelDescrição
api_keyChave de acesso à conta Magalu Cloud. Valor sensível — trate com segurança.
regionRegião da Magalu Cloud onde a VM será criada (ex.: br-se1).
availability_zoneZona de disponibilidade dentro da região selecionada (ex.: br-se1-b).
image_nameNome da imagem customizada cadastrada no catálogo da MGC.
machine_typeTipo de máquina virtual, definindo os recursos de CPU e memória (ex.: BV2-2-20).
ssh_key_nameNome da chave SSH previamente cadastrada na MGC para acesso à VM.

Perguntas frequentes

O que acontece se o machine_type escolhido não atender aos requisitos mínimos da imagem?

A criação da VM será rejeitada pela plataforma, exibindo uma mensagem de erro detalhando a incompatibilidade.

Como posso encontrar o nome correto da minha imagem customizada?

Você pode verificar o nome da sua imagem no catálogo do seu tenant na Magalu Cloud.

Próximos passos

  • Acesse a VM criada via SSH utilizando a chave configurada.
  • Configure e personalize a VM de acordo com suas necessidades.
  • Explore outros recursos da Magalu Cloud para complementar sua infraestrutura.