- Início
- Criando Imagens Customizadas na Magalu Cloud
Criando Imagens Customizadas na Magalu Cloud
Objetivo
Este guia detalha os fluxos para criar imagens customizadas na Magalu Cloud (MGC) a partir de snapshots internos ou imagens externas. Você aprenderá como preparar, construir e importar suas imagens para utilizar em instâncias virtuais, garantindo um ambiente padronizado e seguro.
Atenção: A chave SSH deve estar cadastrada no mesmo tenant onde a VM será criada. Se o Packer e o Terraform usarem tenants diferentes, cadastre a chave em ambos usando:
mgc profile ssh-keys create --name "nome-chave" --key "$(cat ~/.ssh/id_ed25519.pub)"
Pré-requisitos
Antes de começar, certifique-se de que você possui os seguintes itens:
Ferramentas
- Packer instalado (versão 1.8+). Instruções disponíveis na documentação oficial da HashiCorp.
- Terraform instalado (versão 1.5+) para criação de VMs a partir da imagem customizada.
- qemu-img instalado, para conversão de imagens de outros formatos para QCOW2 (no Fluxo B).
- CLI MGC instalada e configurada para importação e gerenciamento de imagens.
Exemplo de instalação do Packer no Linux (Ubuntu/Debian):
wget -O - https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install packer
packer version # Esperado: Packer v1.x.x
Conta e Acessos
- Conta Magalu Cloud ativa.
- Chave de API MGC com permissões para:
- Criar e consultar chaves SSH
- Gerenciar componentes de rede (Security Groups, IPs públicos)
- Criar e gerenciar máquinas virtuais
- Criar e acessar buckets no Object Storage
Para saber como gerar uma chave de API, consulte a documentação oficial da MGC.
Variáveis de Ambiente
# Configure sua chave de API como variável de ambiente
export MGC_API_KEY="SUA_CHAVE_DE_API"
Como fazer
Você pode criar imagens customizadas seguindo um dos dois fluxos descritos abaixo, dependendo da origem da imagem base.
Fluxo A – Snapshot de VM Interna (Tenant MGC)
Este fluxo utiliza o Packer com o Plugin Magalu Cloud para criar um snapshot a partir de uma imagem base disponível na MGC. O Packer provisiona uma instância efêmera, executa os scripts de configuração definidos no template, realiza o graceful shutdown e captura o snapshot final.
- Configure o template HCL do Packer conforme o exemplo da Seção 5.
- Inclua nos provisioners os scripts de sanitização e configuração da imagem (Seção 4).
- Execute o build com o Packer. Ao final, o snapshot estará disponível no catálogo do tenant.
- Utilize a imagem para criar VMs com Terraform (Seção 7).
- Registre a imagem no catálogo do tenant via CLI MGC (Seção 6).
Fluxo B – Imagem Externa (Outra Cloud ou On-Premise)
Este fluxo permite que você utilize uma imagem criada fora da MGC (ex.: AMI da AWS, imagem do GCP, ISO on-premise) e a converta para o formato QCOW2 antes de importá-la.
- Exporte a imagem do ambiente de origem no formato disponível (
vmdk,vhd,raw, etc.). - Converta para QCOW2 usando o
qemu-img(Seção 4). - Valide os requisitos de configuração da imagem: cloud-init, SSH, rede via DHCP (Seção 4).
- Faça o upload do arquivo
.qcow2para um bucket MGC e gere uma URL pré-assinada.
Detalhes técnicos
A escolha entre os fluxos A e B dependerá da sua necessidade e infraestrutura existente. O Fluxo A é mais simples se você já possui imagens base na MGC, enquanto o Fluxo B oferece flexibilidade para utilizar imagens de outros ambientes.
Perguntas frequentes
Preciso configurar o cloud-init em ambos os fluxos?
Sim, o cloud-init deve estar configurado na VM base (Fluxo A) ou instalado na imagem (Fluxo B) para garantir a inicialização e configuração corretas da instância.
Onde devo cadastrar minha chave SSH?
A chave SSH deve ser cadastrada no mesmo tenant onde a VM será criada. Se o Packer e o Terraform usarem tenants diferentes, cadastre a chave em ambos usando:
mgc profile ssh-keys create --name "nome-chave" --key "$(cat ~/.ssh/id_ed25519.pub)"
Próximos passos
- Consulte a documentação oficial da Magalu Cloud para obter informações detalhadas sobre o uso do Packer e Terraform com a MGC.
- Explore os exemplos de templates HCL disponíveis para personalizar suas imagens customizadas.
- Automatize o processo de criação de imagens utilizando pipelines CI/CD para garantir consistência e eficiência.