Virtualización · 5 min read · Jan 19, 2026

Creando Appliances Virtuales RedHat/CentOS/Scientific Linux/Fedora Para KVM Con BoxGrinder (Fedora 17)

Creando Appliances Virtuales RedHat/CentOS/Scientific Linux/Fedora Para KVM Con BoxGrinder (Fedora 17)

Versión 1.0
Autor: Falko Timme
Sígueme en Twitter

BoxGrinder es una herramienta que te permite construir máquinas virtuales (con RedHat, CentOS, Scientific Linux o Fedora como sistema operativo) para múltiples técnicas de virtualización. Actualmente soporta KVM, VMware, Amazon EC2, VirtualBox y VirtualPC. Este tutorial muestra cómo usar BoxGrinder para crear un invitado KVM de CentOS 6 en Fedora 17 y también cómo desplegarlo en un host KVM remoto.

¡No emito ninguna garantía de que esto funcione para ti!

1 Nota Preliminar

Actualmente BoxGrinder está disponible como un paquete para Fedora 17, pero no para RedHat/CentOS/Scientific Linux 6. Por lo tanto, estoy usando un sistema Fedora 17 para crear un invitado KVM de CentOS que puedes ejecutar localmente (si usas Fedora 17 como tu plataforma KVM) o transferir a un host KVM remoto (podrías hacer esto manualmente transfiriendo el archivo de imagen y el archivo de definición XML del invitado al host remoto, pero BoxGrinder también tiene una función incorporada que te permite hacer esto automáticamente).

2 Instalando BoxGrinder

Inicia sesión en tu sistema Fedora como usuario root y ejecuta:

yum install rubygem-boxgrinder-build

3 Usando BoxGrinder

Puedes informarte sobre los plugins de BoxGrinder y los sistemas operativos invitados soportados ejecutando:

boxgrinder-build --version
[root@localhost ~]# boxgrinder-build --version  
BoxGrinder Build 0.10.4  
  
Available os plugins:  
 - rhel plugin for Red Hat Enterprise Linux  
 - centos plugin for CentOS  
 - fedora plugin for Fedora  
 - sl plugin for Scientific Linux  
  
Available platform plugins:  
 - vmware plugin for VMware  
 - ec2 plugin for Amazon Elastic Compute Cloud (Amazon EC2)  
 - virtualbox plugin for VirtualBox  
 - virtualpc plugin for VirtualPC  
  
Available delivery plugins:  
 - s3 plugin for Amazon Simple Storage Service (Amazon S3)  
 - cloudfront plugin for Amazon Simple Storage Service (Amazon S3)  
 - ami plugin for Amazon Simple Storage Service (Amazon S3)  
 - sftp plugin for SSH File Transfer Protocol  
 - ebs plugin for Elastic Block Storage  
 - local plugin for Local file system  
 - elastichosts plugin for ElasticHosts  
 - openstack plugin for OpenStack  
 - libvirt plugin for libvirt Virtualisation API  
[root@localhost ~]#

KVM es soportado por defecto, por eso no está listado como un plugin.

Para aprender cómo usar BoxGrinder, puedes escribir:

boxgrinder-build -h
[root@localhost ~]# boxgrinder-build -h  
Usage: boxgrinder-build [appliance definition file] [options]  
  
A tool for building VM images from simple definition files.  
  
Homepage:  
    http://boxgrinder.org/  
  
Documentation:  
    http://boxgrinder.org/tutorials/  
  
Examples:  
    $ boxgrinder-build jeos.appl                                   # Build KVM image for jeos.appl  
    $ boxgrinder-build jeos.appl -f                               # Build KVM image for jeos.appl with removing previous build for this image  
    $ boxgrinder-build jeos.appl --os-config format:qcow2        # Build KVM image for jeos.appl with a qcow2 disk  
    $ boxgrinder-build jeos.appl -p vmware --platform-config type:personal,thin_disk:true  # Build VMware image for VMware Server, Player, Fusion using thin (growing) disk  
    $ boxgrinder-build jeos.appl -p ec2 -d ami                    # Build and register AMI for jeos.appl  
    $ boxgrinder-build jeos.appl -p vmware -d local              # Build VMware image for jeos.appl and deliver it to local directory  
  
Options:  
    -p, --platform [TYPE]            The name of platform you want to convert to.  
    -d, --delivery [METHOD]          The delivery method for selected appliance.  
    -f, --force                      Force image creation - removes all previous builds for selected appliance. Default: false.  
  
Plugin configuration options:  
    -l, --plugins [PLUGINS]          Comma separated list of additional plugins. Default: empty.  
  
        --os-config [CONFIG]         Operating system plugin configuration in format: key1:value1,key2:value2.  
        --platform-config [CONFIG]   Platform plugin configuration in format: key1:value1,key2:value2.  
        --delivery-config [CONFIG]   Delivery plugin configuration in format: key1:value1,key2:value2.  
  
Logging options:  
        --debug                      Prints debug information while building. Default: false.  
        --trace                      Prints trace information while building. Default: false.  
    -b, --backtrace                  Prints full backtrace if errors occur whilst building. Default: true if console log is set to debug or trace, otherwise false.  
  
Common options:  
        --change-to-user            Change from root to local user after the OS plugin completes.  
        --help                       Show this message.  
        --version                    Print the version.  
[root@localhost ~]#

Básicamente funciona así: creas un archivo de definición de appliance (por ejemplo, centos.appl) en un directorio (por ejemplo, /usr/local/appliances):

mkdir /usr/local/appliances  
cd /usr/local/appliances/  
vi centos.appl

Este archivo de definición de appliance describe nuestro appliance KVM (como nombre, sistema operativo (actualmente se soportan RedHat, CentOS, Scientific Linux y Fedora), contraseña de root, número de CPUs, RAM, particiones (los números significan tamaño en GB), y paquetes que BoxGrinder instalará automáticamente cuando cree la máquina virtual):

| name: centos-6-lamp summary: CentOS 6 LAMP version: 1 release: 0 os: name: centos version: 6 password: secret hardware: cpus: 2 memory: 1024 partitions: "/": size: 4 "/var": size: 10 "swap": size: 0.5 packages: - @core - @web-server - @mysql - acpid default_repos: true # default is true |

Los paquetes que comienzan con un @ no son paquetes individuales, sino grupos de paquetes. Puedes informarte sobre los grupos de paquetes disponibles ejecutando

yum grouplist -v

en un sistema que ejecute el mismo sistema operativo que deseas usar en tu appliance.

Los nombres de los grupos de paquetes están entre paréntesis.

Los paquetes que no comienzan con un signo @ no son grupos de paquetes, sino exactamente ese paquete único.

BoxGrinder siempre instalará la última versión disponible de un sistema operativo, es decir, si especificas CentOS 6, significa que instalará 6.3 (6.3 siendo la última versión de CentOS en el momento de escribir esto).

Ahora puedes llamar a BoxGrinder así (asegúrate de estar en el mismo directorio donde se encuentra centos.appl):

boxgrinder-build centos.appl

Por defecto, BoxGrinder crea imágenes en bruto. Después de la construcción, puedes encontrar la imagen y la definición XML en el directorio build/appliances/////1.0/-plugin/ - en mi caso, esto se traduce a build/appliances/i686/centos/6/centos-6-lamp/1.0/centos-plugin/:

ls -l build/appliances/i686/centos/6/centos-6-lamp/1.0/centos-plugin/
[root@localhost appliances]# ls -l build/appliances/i686/centos/6/centos-6-lamp/1.0/centos-plugin/  
total 863308  
-rwxr-xr-x. 1 root root 15569256448 Oct  5 11:44 centos-6-lamp-sda.raw  
-rw-r--r--. 1 root root         475 Oct  5 11:42 centos-6-lamp.xml  
[root@localhost appliances]#

Para crear un appliance en formato qcow2, usarías

boxgrinder-build centos.appl --os-config format:qcow2

en su lugar:

ls -l build/appliances/i686/centos/6/centos-6-lamp/1.0/centos-plugin/
[root@localhost appliances]# ls -l build/appliances/i686/centos/6/centos-6-lamp/1.0/centos-plugin/  
total 1628824  
-rw-r--r--. 1 root root   784007168 Oct  5 11:52 centos-6-lamp-sda.qcow2  
-rw-r--r--. 1 root root         481 Oct  5 11:51 centos-6-lamp.xml  
[root@localhost appliances]#

Ahora podrías tomar la imagen y copiarla a /var/lib/libvirt/images en tu host KVM y el archivo XML y copiarlo a /etc/libvirt/qemu/ en el host KVM, abrir virsh y definir una nueva máquina virtual desde el archivo XML, pero en lugar de hacer esto manualmente, puedes hacer que BoxGrinder lo haga por ti (con el interruptor -d):

Por ejemplo, si deseas agregar el appliance a tu instalación local de KVM, ejecuta:

boxgrinder-build centos.appl --os-config format:qcow2 -d libvirt

Esto copiaría la imagen directamente al directorio /var/lib/libvirt/images…

ls -l /var/lib/libvirt/images
[root@localhost appliances]# ls -l /var/lib/libvirt/images  
total 765636  
-rw-r--r--. 1 root root 784007168 Oct  5 11:55 centos-6-lamp-sda.qcow2  
[root@localhost appliances]#

… y el archivo XML al directorio /etc/libvirt/qemu/:

ls -l /etc/libvirt/qemu/
[root@localhost appliances]# ls -l /etc/libvirt/qemu/  
total 8  
-rw-------. 1 root root 2135 Oct  5 11:55 centos-6-lamp-1-0-centos-6-i686-raw.xml  
drwx------. 3 root root 4096 Jun 28 15:52 networks  
[root@localhost appliances]#
Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.