¿Qué es Packer?

Packer es una herramienta de código abierto para la creación de imágenes de cualquier sistema operativo.

Es muy fácil de usar y como ya hemos comentado, automatiza la creación de cualquier tipo de imagen de máquina. Promueve una gestión de configuración moderna, fomentando el uso de frameworks como Chef o Puppet para instalar y configurar el software dentro de las imágenes.

Ventajas.

  • Herramienta ligera.
  • Fácil de utilizar.
  • Funciona sobre los principales sistemas operativos.
  • Integración con Puppet / Chef / otros...

Plataformas.

Actualmente Packer soporta la creación de imágenes en las siguientes plataformas:

  • Amazon EC2 (AMI).
  • DigitalOcean.
  • OpenStack.
  • VirtualBox (OVF).
  • VMware (VMX).

Instalación.

Para instalar Packer sólo necesitamos descargar el paquete que nos corresponda desde http://www.packer.io/downloads.html

Una vez descargado, lo copiamos a la ruta donde deseamos mantenerlo. Procedemos a descomprimirlo y observamos que contiene una sería de binarios como por ejemplo: packer.

Por último, nos aseguramos de que colocamos la ruta donde tenemos nuestra carpeta en nuestro PATH.

Podemos verificar que todo ha ido correctamente ejecutando el comando "packer".

Ejemplo

Una vez instalada la herramienta, procedemos a crear una carpeta en cualquier ubicación de nuestro ordenador.

Dentro vamos a crear un fichero llamado "packer.json", dicho fichero va a contener los parámetros de la imagen que deseamos crear.

Para este ejemplo voy a crear una imagen utilizando mi cuenta en DigitalOcean, por lo que el contenido del fichero "packer.json" debe ser similar a:

{ "builders": [ { "type": "digitalocean", "client_id": "xxxxxxxxxxxxx", "api_key": "xxxxxxxxxxxxxx", "snapshot_name": "Imagen Ubuntu", "image_id": 350076, "region_id": 1, "size_id": 66 } ] }

Con este fichero de configuración voy a crear una imagen simple de Ubuntu 13.04 X64, utilizando la región New York 1 y con 512 MB de tamaño en mi cuenta de DigitalOcean.

Para comprobar que no tenemos errores en nuestro fichero de configuración, podemos verificarlo utilizando el comando "packer validate packer.json"

Cuando estemos preparados para crear la imagen solo basta ejecutar el comando "packer build packer.json"

Al finalizar el proceso ya tendremos creada nuestra nueva imagen, la cual podremos utilizar como plantilla de otras.

Les invito a revisar la documentación de la herramienta http://www.packer.io/docs donde explican como ampliar las propiedades de nuestro fichero de configuración, así como la integración con provisionadores como Chef o shell script.