- Início
- Automação com Packer na Magalu Cloud
Automação com Packer na Magalu Cloud
Objetivo
Este guia demonstra como automatizar a criação de imagens de máquina na Magalu Cloud (MGC) utilizando o Packer, uma ferramenta de Infrastructure as Code (IaC). Você aprenderá a configurar um template HCL para criar snapshots personalizados e reproduzíveis.
Atenção: O plugin Magalu Cloud estende o Packer com suporte nativo à infraestrutura da MGC. Certifique-se de ter as permissões necessárias na sua chave de API para executar as operações descritas neste guia.
Pré-requisitos
- Uma conta ativa na Magalu Cloud.
- Uma chave de API (API Key) com permissões adequadas para criar instâncias, snapshots e gerenciar recursos na MGC.
- O Packer instalado em sua estação de trabalho. Consulte a documentação oficial do Packer para instruções de instalação.
- Conhecimento básico sobre o formato HCL (HashiCorp Configuration Language).
Como fazer
-
Abra um terminal em sua estação de trabalho.
-
Navegue até o diretório onde você salvará o arquivo
template.pkr.hcl:
cd ~/packer_example/
- Inicialize o plugin Magalu Cloud (este passo é necessário apenas na primeira execução):
packer init template.pkr.hcl
- Execute o build, passando a chave de API MGC como variável de ambiente ou diretamente no comando:
packer build -var=api_key=<sua_chave_de_api> template.pkr.hcl
Ou defina a variável de ambiente MGC_API_KEY antes de executar o comando:
export MGC_API_KEY=<sua_chave_de_api>
packer build template.pkr.hcl
Ao final do processo, o Packer exibirá uma mensagem de confirmação com o ID do snapshot gerado. Este snapshot estará disponível no catálogo da sua conta na Magalu Cloud.
Detalhes técnicos
Parâmetros do Source magalucloud
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
api_key | Sim | Chave de API MGC com as permissões necessárias. |
region | Sim | Região MGC onde a instância será criada (ex.: br-se1, br-ne1). |
availability_zone | Sim | Zona de disponibilidade (ex.: br-se1-b). |
source_image | Sim | Nome da imagem base disponível na MGC. |
machine_type | Sim | Tipo de máquina a ser usada durante o build (ex.: BV1-1-10). |
ssh_username | Sim | Usuário SSH da imagem base (ex.: ubuntu). |
Exemplo Completo – Template HCL
O exemplo abaixo demonstra como criar um snapshot Ubuntu 24.04 com o Redis instalado, incluindo etapas de sanitização ao final:
packer {
required_plugins {
magalucloud = {
source = "github.com/MagaluCloud/magalucloud"
version = ">= 0.3.0"
}
}
}
variable "api_key" {
type = string
default = env("MGC_API_KEY")
sensitive = true
}
source "magalucloud" "example" {
api_key = var.api_key
region = "br-se1"
availability_zone = "br-se1-b"
source_image = "cloud-ubuntu-24.04 LTS"
machine_type = "BV1-1-10"
ssh_username = "ubuntu"
}
build {
name = "example"
sources = ["source.magalucloud.example"]
# Bloco 1: instalação de software
provisioner "shell" {
inline = [
"sudo apt-get update",
"sudo apt-get install -y redis-server",
"sudo systemctl enable --now redis-server",
]
}
# Bloco 2: sanitização da imagem
provisioner "shell" {
inline = [
"sudo apt-get clean",
"sudo apt-get autoremove -y",
"sudo cloud-init clean --logs --machine-id --seed",
"sudo rm -rf /tmp/*",
"sudo rm -f /etc/ssh/ssh_host_*",
"sudo rm -f /root/.ssh/authorized_keys",
"sudo rm -f /home/ubuntu/.ssh/authorized_keys",
"unset HISTFILE",
"sudo rm -f /root/.bash_history",
"sudo rm -f /home/ubuntu/.bash_history",
]
}
}
Perguntas frequentes
O que é o Packer?
O Packer é uma ferramenta de Infrastructure as Code (IaC) que automatiza a criação de imagens de máquina idênticas para múltiplas plataformas.
Qual o propósito do plugin Magalu Cloud para Packer?
O plugin estende o Packer com suporte nativo à infraestrutura da Magalu Cloud, permitindo criar e importar imagens customizadas diretamente para sua conta MGC.
Como posso fornecer a chave de API ao Packer?
Você pode passar a chave de API como uma variável de ambiente (MGC_API_KEY) ou explicitamente no comando packer build usando a flag -var.
Próximos passos
- Explore as opções de configuração do plugin Magalu Cloud para personalizar ainda mais o processo de criação de imagens.
- Integre o Packer em seu pipeline de CI/CD para automatizar a criação e atualização de imagens de máquina.
- Consulte a documentação oficial do Packer e do plugin Magalu Cloud: https://github.com/MagaluCloud/packer-plugin-magalucloud.