Script para inicio automático VMs VirtualBox

Imagen de eliche
AdjuntoTamaño
Plain text icon vboxcontrol-debian.txt2.9 KB
Plain text icon vboxcontrol-centos.txt2.9 KB

Forums: 

Estimados, envío mi pequeño aporte a la comunidad:

Como muchos ustedes, he incursionado también en el mundo de la virtualización, algunas de las plataformas que he probado son VirtualBox, openvz, kvm. Al estar apenas incursionando pues me quedo con el más facil :P VirtualBox. Lo he probado en CentOS, Debian y Ubuntu implementando máquinas virtuales para producción (en sistemas con poca demanda claro está). Por eso me ví en la necesidad de buscar la manera de iniciar automáticamente las máquinas virtuales como un servicio del sistema.

Consulté y encontré una solución en el siguiente link: http://www.kernelhardware.org/virtualbox-auto-start-vm-centos-fedora-redhat/, claro tuve que adaptarla a mis necesidades.

Lo que haremos para tener el script de inicio automático es lo siguiente:

1. Instalar VirtualBox sea en CentOS, Debian o Ubuntu (eso se los dejo a ustedes)
2. Crear un usuario miembro del grupo vboxusers con el cual realizar el paso No. 3, por ejemplo el usuario "virtualizacion"
# gpasswd -a virtualizacion vboxusers

3. Añadir y configurar correctamente una o más máquinas virtuales (también corre por su cuenta), evitar poner en su nombre espacios en blanco, o símbolos especiales.

4. Crear el directorio /etc/virtualbox
5. Crear el fichero machines_enabled dentro de /etc/virtualbox.
6. Listar las máquinas virtuales que existen.
7. Colocar los nombres de las máquinas que se desea controlar dentro del fichero /etc/virtualbox/machines_enabled

Sería así (pasos 4 al 7):
# mkdir /etc/virtualbox
# touch /etc/virtualbox/machines_enabled
# VBoxManage list vms

La salida del último comando para mi es lo siguiente:

"windowsXP" {b07f7f4d-847b-4480-bc99-39271489d7b8}
"Desarrollo" {3abec8be-1d57-460c-ba53-99b51285bbec}
"wserver2008" {c1a240ec-bc13-464c-aeff-42984f2aa2c2}
"debian" {e13906c5-0ec9-45b3-a787-e366e4abb06e}

Por lo tanto, yo quiero controlar las máquinas "wserver2008" y "Desarrollo", entonces:
# echo wserver2008 >> /etc/virtualbox/machines_enabled
# echo Desarrollo >> /etc/virtualbox/machines_enabled

8. Descargar el fichero vboxcontrol-centos.txt (para CentOS) o vboxcontrol-debian (para debian 6 o ubuntu 10.04 en adelante), moverlo a /etc/init.d/vboxcontrol y darle permisos de ejecución.
9. Añadir los links hacia los runlevels adecuados según su necesidad:

# mv vboxcontrol-distro.txt /etc/init.d/vboxcontrol
# chmod u+x /etc/init.d/vboxcontrol
# chkconfig vboxcontrol on
(para CentOS)
# update-rc.d vboxcontrol defaults (para Debian/Ubuntu)

Iniciar las máquinas virtuales:
# service vboxcontrol start ó
# /etc/init.d/vboxcontrol start

Algunos de los argumentos que se pueden usar son: start|stop|status|start-vm |stop-vm |poweroff-vm

El script está adaptado para trabajar con el usuario "virtualizacion" e iniciar las máquinas virtuales en el modo "headless". Si alguien lo requiere puede modificarlo a sus necesidades también.

Espero sea de utilidad para alguno.

Saludos.

Como comentario vago

Imagen de iknaxio

Yo no recomendaría el proceso que indicas, salvo que se trate de un entorno de producción, en el que generalmente es necesario que todas las máquinas virtuales se levanten al iniciar el servidor.

Esto lo digo porque en desarrollo/pruebas uno suele configurar múltiples máquinas virtuales cuyos recursos que utilizan, si los sumamos, suelen exceder las capacidades reales del HW.

Como lo dije en un principio solo es un comentario vago :P

"Transporta un puñado de tierra todos los días y construirás una montaña" - Confucio
floss.iknaxio.net

Bueno no tienes totalmente la

Imagen de eliche

Bueno no tienes totalmente la razón jeje, puesto que solo pones las máquinas virtuales que quieres arrancar automaticamente en el fichero /etc/virtualbox/machines_enabled, las que no están allí, las inicias manualmente XD

Ing. Eliécer Tatés Montenegro
Neovoice
VoIP & IT Consulting
e-mail: eliecer.tates@neovoice.co / elitatmon@gmail.com

Distinguido, estaba aplicando

Imagen de damage

Distinguido, estaba aplicando la configuración posteada, pero al iniciar el servicio me da este mensaje:

/etc/init.d/vboxcontrol start
Starting VM: Consola ...
This account is currently not available.

Mi pregunta es problema de usuario, grupo, algun permiso que falto aplicar o que mas podría ser?

Saludos.