Despliegue automatizado de VMs con virt-builder
¶
Table of Contents
virt-builder
es una herramienta para un rápido despliegue de nuevas VMs. Además nos permite personalizar estas VMs a través de plantillas de SOs editables, ahorrándonos el tiempo de hacer una instalación del SOs guest desde cero.
Esta herramienta es provista por el paquete libguestfs-tools-c
y puede ser instalado corriendo el comando:
- Con
apt
:sudo apt-get install -y libguestfs-tools
- Con
yum
:sudo yum install -y libguestfs-tools-c
Note
Por defecto, virt-builder
descarga plantillas de SOs del repositorio http://libguestfs.org/download/builder/
, siendo necesario conexión a Internet. Sin embargo, también es posible crear un repositorio local para virt-builder
.
Por ejemplo para crear una VM de Centos 7.0 con 10 GB ejecutaremos:
$ cd /var/lib/libvirt/images
$ sudo virt-builder centos-7.0 --format raw --size 10G
[ 1.0] Downloading: http://libguestfs.org/download/builder/centos-7.0.xz
[ 2.0] Planning how to build this image
[ 2.0] Uncompressing
[ 14.0] Resizing (using virt-resize) to expand the disk to 10.0G
[ 149.0] Opening the new disk
[ 179.0] Setting a random seed
[ 180.0] Setting passwords
virt-builder: Setting random password of root to Ldm43dKj12Msalp1x
[ 198.0] Finishing off
Output file: centos-7.0.img
Output size: 10.0G
Output format: raw
Total usable space: 8.1G
Free space: 7.3G
Primero descargó la plantilla, la descomprimió, redimensionó la imagen del disco para que calce al tamaño dado, sembró datos de la plantilla a la imagen, la edito (configuró una contraseña aleatoria) y finalizó. Se ha creado una contraseña de root aleatoria y usa un espacio de disco mínimo expandible hasta 10 GB. La imagen se almacena en el directorio /var/lib/libvirt/images
.
Luego, ingresar el siguiente comando para crear la VM con virt-install
:
$ sudo virt-install --name centos --ram 1028 --vcpus=2 --disk path=/var/lib/libvirt/images/centos-7.0.img --import
Hay muchas opciones disponibles con virt-builder
: instalación de software, configuración de hostname, edición de archivos, etc.
virt-builder
almacena en caché la plantilla descargada en el directorio home del usuario actual con la siguiente ruta: $HOME/.cache/virt-builder
. Podemos imprimir la información del directorio caché, incluyendo que guest están en caché corriendo:
$ virt-builder --print-cache
cache directory: /root/.cache/virt-builder
centos-6 x86_64 no
centos-7.0 x86_64 cached
centos-7.1 x86_64 no
cirros-0.3.1 x86_64 no
debian-6 x86_64 no
# ...
CentOS 7 se encuentra en caché. a siguiente vez que creemos una VM con este SO usará la plantilla en caché y creará la VM aún más rápido.
- Eliminar caché:
virt-builder --delete-cache
- Descargar todas las plantillas a caché local:
virt-builder --cache-all-templates
Note
virt-builder solo soporta guest de Linux, no posee soporte para guest de Windows.
Referencias: