Comandos Clave - 353.2 Packer

Comandos Packer

ComandoDescripción
packer init .Inicializar y descargar plugins necesarios
packer validate .Validar sintaxis del template
packer validate ubuntu.pkr.hclValidar archivo específico
packer inspect ubuntu.pkr.hclInspeccionar template (sources, vars, builds)
packer build .Construir imagen(es)
packer build ubuntu.pkr.hclConstruir desde archivo específico
packer build -var "key=value" .Construir con variable
packer build -var-file=vars.pkrvars.hcl .Construir con archivo de variables
packer build -only=qemu.ubuntu .Construir solo un source específico
packer build -except=virtualbox-iso.linux .Excluir un source
packer build -debug .Modo debug paso a paso
packer build -force .Forzar reconstrucción
packer fmt .Formatear archivos HCL
packer fmt -check .Verificar formato sin modificar

Bloques HCL2 Principales

BloqueDescripción
packer { }Configuración de Packer (plugins requeridos)
variable "nombre" { }Definición de variable
source "builder" "nombre" { }Definición de source/builder
build { }Definición de build (sources + provisioners + post-processors)
provisioner "tipo" { }Provisioner dentro de build
post-processor "tipo" { }Post-processor dentro de build

Builders Soportados

BuilderIdentificadorFormato de salida
QEMU/KVMqemuqcow2, raw
VirtualBoxvirtualbox-isoovf, ova
VMwarevmware-isovmx, vmdk
Amazon EC2amazon-ebsAMI
Google CloudgooglecomputeImagen GCE
Azureazure-armImagen Azure
DockerdockerImagen Docker

Provisioners

ProvisionerUso
shellEjecutar scripts/comandos shell
fileSubir archivos al guest
ansibleEjecutar playbook Ansible
ansible-localAnsible ejecutado dentro del guest
powershellScripts PowerShell (Windows)
windows-shellCMD de Windows

Post-processors

Post-processorUso
compressComprimir imagen resultante
checksumGenerar checksums
vagrantConvertir a Vagrant box
docker-pushSubir imagen Docker
docker-tagEtiquetar imagen Docker
manifestGenerar archivo de manifiesto

Archivos y Extensiones

ArchivoDescripción
*.pkr.hclTemplate Packer en formato HCL2
*.pkrvars.hclArchivo de variables
*.auto.pkrvars.hclVariables cargadas automáticamente
*.pkr.jsonTemplate en formato JSON (legacy)
http/Directorio servido por HTTP durante el build
scripts/Scripts de provisioning (convención)
output-*/Directorio de salida con imágenes generadas