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-build3 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.applEste 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 -ven 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.applPor 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/
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:qcow2en 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 libvirtEsto 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]#Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.