Los ejercicios de packer están divididos en dos páginas:
Packer es una herramienta de creación de máquinas virtuales. Su desarrollo puede seguirse en GitHub.
La primera versión pública se publicó en junio de 2013 y la versión 1.0 se publicó en abril de 2017. Este es el listado de novedades en cada versión de Packer.
Hasta la versión 1.9.5 (publicada en diciembre de 2023), Packer era un software libre publicado bajo la licencia MPL 2.0. Desde la versión 1.10 (publicada en diciembre de 2023), Packer se publica bajo la licencia no libre Public Bussiness License.
La licencia BSL fue creada en 2016 por Mark Widenius, el fundador de MySQL y de MariaDB. Esta licencia es libre para usos no comerciales, pero no permite los usos comerciales del software durante los primeros años (normalmente, cuatro años, pero pueden ser menos), a partir de los cuales el software pasa a una licencia libre compatible con GPL 2. En el caso de Packer el período son cuatro años y la licencia a la que cambia pasados esos cuatro años es la MPL 2.0. .
Packer trabaja a partir de plantillas. Las plantillas son ficheros JSON que le dicen a Packer qué tipo de máquina virtual se quiere crear, los pasos a realizar para instalar el sistema operativo y los comandos o scripts a ejecutar tras la instalación.
Una vez hemos creado la plantilla, Packer permite crear automáticamente tantas máquinas virtuales como necesitemos. Lógicamente, cuantas más máquinas virtuales creemos a partir de una plantilla, más rentabilizaremos el tiempo empleado en la elaboración de la plantilla, pero, aún en el caso de que sólo creemos una vez la máquina virtual, la plantilla nos servirá como documentación y especificación del proceso.
A partir de Packer 1.5 (publicado en diciembre de 2019), Packer permite escribir las plantillas en HCL2, un formato de archivos de configuración desarrollado por HashiCorp.
En junio de 2019 HashiCorp puso en marcha en nuevo portal comunitario dedicado a sus productos. Entre otros, cuenta con un foro dedicado a Packer.
En diciembre de 2021 HashiCorp salió a bolsa. A primeros de agosto de 2023, HashiCorp anunció que las nuevas versiones de sus productos cambiarían de licencia, pasando a usar la licencia no libre Public Bussiness License.
El cambio de licencia no fue bien recibido por muchos usuarios de las aplicaciones de HashiCorp, especialmente por un grupo de empresas usuarias de Terraform, un software de gestión de infraestructura de servidores. El mismo agosto se creó un fork llamado OpenTofu, que en septiembre ya era un proyecto de la Linux Foundation.
Este cambio en las licencias puede ser uno de los motivos que llevaron a Mitchell Hashimoto, el fundador de HashiCorp, a abandonar HashiCorp en diciembre de 2023.
En abril de 2024 se publicó la noticia de la compra de HashiCorp por parte de IBM por unos 6400 millones de dólares. El catálogo de software de HashiCorp se ha establecido como una alternativa a Kubernetes y a OpenShift y esta compra reforzará a Red Hat, que forma parte de IBM. El futuro dirá si IBM revierte el cambio de licencia de 2023 o incluso si mantiene el desarrollo de las herramientas de HashiCorp.
En Windows, packer se distribuye en forma de fichero zip (página de descarga de packer).
Estas lecciones se han elaborado con la versión packer 1.8.6 para Windows 64 bits, publicada el 15 de febrero de 2023.
Si no encuentra esta versión en la web del programa, puede descargarla desde la página de Descarga de aplicaciones.
Packer no necesita instalación. Simplemente, hay que descomprimir el fichero zip en una carpeta para obtener el programa packer.exe.
Para ejecutar packer, abra una ventana de Símbolo de sistema (CMD o PowerShell) y ejecute la orden packer con los parámetros adecuados. Por ejemplo, para conocer la versión de packer, ejecute:
packer --version
1.8.6
Para que packer cree un archivo de log del proceso de creación de la plantilla, que nos será muy útil para identificar los errores del proceso, en Windows es necesario establecer dos variables de entorno.
En Windows, puede añadir estas variables de dos maneras:
setx PACKER_LOG 1
CORRECTO: se guardó el valor especificado
setx PACKER_LOG_PATH packerlog.txt
CORRECTO: se guardó el valor especificado
Cierre la ventana, abra de nuevo una ventana de símbolo de sistema (CMD) y compruebe que se han establecido las variables de entorno con el comando set:
set PACKER
PACKER_LOG=1
PACKER_LOG_PATH=packerlog.txt
Packer permite crear máquinas virtuales para muchos sistemas de virtualización e instalar y configurar en ellas el sistema operativo que queramos.
Las plantillas de packer admiten muchas posibilidades, que se detallan en la documentación oficial de packer.
En la lección Packer(1) veremos dos ejemplos de creación de máquinas virtuales:
En la lección Packer(2) veremos cuatro ejemplos de modificación y posterior instalación de aplicaciones en la máquinas:
Una de las ventajas de preparar primero la imagen básica es ahorrarnos la instalación del sistema operativo en cada prueba de instalación de aplicaciones. La instalación es un proceso que puede tardar más de 10 minutos y que sólo necesitaremos hacer una vez.