Re: Usar virtualbox en servidor sin entorno gráfico.
Hola,
Tambien para hacer un apagado limpio puedes ejecutar este comando, lo unico despues tienes es esperar que la maquina virtual termine de cerrar bien
VBoxManage -nologo controlvm NOMBRE_MAQUINA acpipowerbutton
Te dejo este script, que te puede servir de ejemplo , las maquinas las tenia creadas con el usuario virtualbox (lo cree para correr todo lo que sea virtualbox)
/etc/init.d/virtualbox-manejador.sh
====================================================================================================
#! /bin/sh
### BEGIN INIT INFO
# Provides: virtualbox-manejador
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Virtualbox Manejador
# Description: Script que arranca las maquinas virtuales de virtualbox
### END INIT INFO
# Author: Ricardo Marcelo Alvarez <rmalvarez@gnupanel.org>
#
# Please remove the "Author" lines above and replace them
# with your own name if you copy and modify this script.
# Do NOT "set -e"
# PATH should only include /usr/* if it runs after the mountnfs.sh script
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="Arrancando maquinas virtuales VIRTUALBOX"
NAME=virtualbox-manejador.sh
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/virtualbox-manejador.sh
. /lib/init/vars.sh
. /lib/lsb/init-functions
. /etc/default/virtualbox-manejador
MAQUINAS=`/bin/su ${USUARIO} -c "/usr/bin/VBoxManage -nologo list vms" | /usr/bin/mawk '{print $1;}' | /usr/bin/sort -r `
do_start()
{
##subir_redes
for maquina in ${MAQUINAS}
do
ARRANCAR=`/bin/su ${USUARIO} -c "/usr/bin/VBoxManage -nologo list runningvms" | /usr/bin/mawk '{print $1;}' | /bin/grep ${maquina} | /usr/bin/wc -l `
if [ ${ARRANCAR} -eq 0 ]
then
NOMBRE=${maquina}
/bin/echo "Arrancando maquina virtual: ${NOMBRE} "
/bin/su ${USUARIO} -c "/usr/bin/VBoxHeadless --vrdp off --startvm ${maquina} & " 1>/dev/null
/bin/echo Listo
/bin/sleep 4
else
/bin/echo "${maquina} ya se encontraba funcionando"
fi
echo ""
/bin/su ${USUARIO} -c "/usr/bin/VBoxManage -nologo controlvm ${maquina} setlinkstate1 on "
/bin/su ${USUARIO} -c "/usr/bin/VBoxManage -nologo controlvm ${maquina} setlinkstate2 on "
done
/bin/sleep 5
/bin/echo "1" > /var/run/checkea_virtualbox
}
parar_maquinas()
{
PARAR=0
for maquina in ${MAQUINAS}
do
PARAR=`/bin/su ${USUARIO} -c "/usr/bin/VBoxManage -nologo list runningvms " | /bin/grep ${maquina} | /usr/bin/wc -l `
if [ ${PARAR} -eq 1 ]
then
/bin/su ${USUARIO} -c "/usr/bin/VBoxManage -nologo controlvm ${maquina} acpipowerbutton"
fi
done
}
parar_maquinas_prepo()
{
PARAR=0
for maquina in ${MAQUINAS}
do
PARAR=`/bin/su ${USUARIO} -c "/usr/bin/VBoxManage -nologo list runningvms " | /bin/grep ${maquina} | /usr/bin/wc -l `
if [ ${PARAR} -eq 1 ]
then
/bin/su ${USUARIO} -c "/usr/bin/VBoxManage -nologo controlvm ${maquina} poweroff "
fi
done
}
subir_redes()
{
PARAR=0
for maquina in ${MAQUINAS}
do
PLACA_RED=`/bin/su ${USUARIO} -c "/usr/bin/VBoxManage showvminfo ${maquina} -details" | /bin/grep "NIC 1" | /usr/bin/mawk -F "\'" '{print $2;}'`
/usr/bin/VBoxAddIF ${PLACA_RED} ${USUARIO} ${PUENTE} 1>/dev/null 2>/dev/null
/usr/bin/VBoxTunctl -u ${USUARIO} -g ${GRUPO} -t ${PLACA_RED} 1>/dev/null 2>/dev/null
#/sbin/ifconfig ${PLACA_RED} down
#CAMBIO=${PLACA_RED}"_mac"
#MAC_CAMBIO=${!CAMBIO}
#/usr/bin/macchanger -m ${MAC_CAMBIO} ${PLACA_RED} 1>/dev/null 2>/dev/null
#/sbin/ifconfig ${PLACA_RED} up arp
#/usr/sbin/brctl addif ${PUENTE} ${PLACA_RED}
#/bin/echo "0" > /proc/sys/net/ipv4/ip_forward
#/bin/echo "0" > /proc/sys/net/ipv4/conf/${PLACA_RED}/proxy_arp
done
}
bajar_redes()
{
PARAR=0
for maquina in ${MAQUINAS}
do
PLACA_RED=`/bin/su ${USUARIO} -c "/usr/bin/VBoxManage showvminfo ${maquina} -details" | /bin/grep "NIC 1" | /usr/bin/mawk -F "\'" '{print $2;}'`
/usr/bin/VBoxTunctl -d ${PLACA_RED} 1>/dev/null 2>/dev/null
/usr/bin/VBoxDeleteIF ${PLACA_RED} 1>/dev/null 2>/dev/null
done
}
#
# Function that stops the daemon/service
#
do_stop()
{
/bin/echo "0" > /var/run/checkea_virtualbox
/bin/echo -n "Deteniendo las siguientes maquinas virtuales VIRTUALBOX: "
for maquinal in ${MAQUINAS}
do
NOMBRE=`/bin/su ${USUARIO} -c "/usr/bin/VBoxManage -nologo showvminfo ${maquinal} | /bin/grep Name: " | /usr/bin/mawk '{print $2;}' `
echo -n "${NOMBRE} "
done
parar_maquinas
CANTIDAD=`/bin/su ${USUARIO} -c "/usr/bin/VBoxManage -nologo list runningvms | /usr/bin/wc -l " `
CONTADOR=0
CONTADOR_PREPO=0
while [ ${CANTIDAD} -ne 0 ]
do
/bin/echo -n "."
CANTIDAD=`/bin/su ${USUARIO} -c "/usr/bin/VBoxManage -nologo list runningvms | /usr/bin/wc -l " `
/bin/sleep 1
if [ ${CONTADOR} -eq 60 ]
then
CONTADOR=0
parar_maquinas
/bin/sleep 1
fi
CONTADOR=$[ ${CONTADOR} + 1 ]
if [ ${CONTADOR_PREPO} -eq ${MAX_STOP_TIME} ]
then
CONTADOR_PREPO=0
echo ""
echo "El tiempo de espera a superado los ${MAX_STOP_TIME} segundos, se forzara el apagado de las maquinas que permanezcan encendidas"
parar_maquinas_prepo
CANTIDAD=0
/bin/sleep 21
fi
CONTADOR_PREPO=$[ ${CONTADOR_PREPO} + 1 ]
done
/bin/echo "."
##bajar_redes
/bin/echo "Listo"
/bin/sleep 2
/bin/echo ""
}
#
# Function that sends a SIGHUP to the daemon/service
#
do_restart() {
do_stop
/bin/sleep 2
do_start
}
case "$1" in
start)
if [ ${ACTIVADO} = "yes" ]
then
/etc/init.d/vboxdrv start
/bin/sleep 21
do_start
/usr/local/bin/montar-gnupanel start
else
/bin/echo "Maquinas virtuales estan desabilitadas."
/bin/sleep 4
fi
;;
stop)
if [ ${ACTIVADO} = "yes" ]
then
/usr/local/bin/montar-gnupanel stop
do_stop
else
/bin/echo "Maquinas virtuales estan desabilitadas."
/bin/sleep 4
fi
;;
restart)
if [ ${ACTIVADO} = "yes" ]
then
/bin/sleep 21
/etc/init.d/vboxdrv start
do_restart
fi
;;
reload)
if [ ${ACTIVADO} = "yes" ]
then
do_restart
fi
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|reload}" >&2
exit 3
;;
esac
====================================================================================================
/etc/default/virtualbox-manejador
====================================================================================================
ACTIVADO=no
MONTAR=yes
MAX_STOP_TIME=150
USUARIO=virtualbox
GRUPO=virtualbox
PUENTE=vboxbr0
vbox0_mac=00:FF:92:ED:22:D0
vbox1_mac=00:FF:92:ED:22:D1
vbox2_mac=00:FF:92:ED:22:D2
vbox3_mac=00:FF:92:ED:22:D3
vbox4_mac=00:FF:92:ED:22:D4
vbox5_mac=00:FF:92:ED:22:D5
vbox6_mac=00:FF:92:ED:22:D6
vbox7_mac=00:FF:92:ED:22:D7
vbox8_mac=00:FF:92:ED:22:D8
vbox9_mac=00:FF:92:ED:22:D9
====================================================================================================
Saludos.
> El 9 de abril de 2010 11:55, Camaleón <noelamac@gmail.com> escribió:
>
> > El Fri, 09 Apr 2010 11:24:00 +0200, Pablo Braulio escribió:
> >
> > > Camaleón escribió:
> >
> > >> ¿Y se inicia, realmente?
> > >>
> > >>
> > > Si se inicia. Lo ejecuto en mi equipo fuera del entorno gráfico y luego
> > > en el escritorio lo puedo comprobar con la interfaz de VirtualBox.
> >
> > Se me ocurre una "chapuzilla".
> >
> > Para la VM en remoto, para que no se cierre a lo bruto e intenta
> > iniciarla de nuevo:
> >
> > VBoxManage startvm --type headless ubuntu
> >
> > Y luego, intenta detenerla.
> >
> > VBoxManage controlvm ubuntu poweroff
> >
> > A ver qué nos cuenta...
> >
> > Saludos,
> >
> > --
> > Camaleón
> >
> >
> > --
> > To UNSUBSCRIBE, email to debian-user-spanish-REQUEST@lists.debian.org
> > with a subject of "unsubscribe". Trouble? Contact
> > listmaster@lists.debian.org
> > Archive: [🔎] pan.2010.04.09.09.55.40@gmail.com">http://lists.debian.org/[🔎] pan.2010.04.09.09.55.40@gmail.com
> >
> >
> No mencionas que VBox tienes instalado, pero hay algunas versiones que
> permiten controlar las VM por VNC/RDP.
>
> Por otro lado para apagar el servidor, también puedes conectarte a el y
> apagar con poweroff o shutdown.
>
> Para abrir aplicaciones en modo gráfico de forma remota usando SSH, sin
> iniciar el GDM al arranque y sin desplazarse al servidor físicamente, te
> conectas de la siguiente forma:
>
> ssh -X -l root <IP de tu máquina>
>
> a continuación, puedes iniciar cualquier aplicación gráfica, por ejemplo
> escribes:
>
> synaptic
>
> y te abre el actualizador/instalador de paquetes.
>
> Un saludo a todos/as.
> Javier Silva.
--
Ricardo Marcelo Alvarez desarrollador de GNUPanel
Panel de control de hosting GPL para debian
GPL hosting control panel for Debian
http://www.gnupanel.org
__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
¡Abrí tu cuenta ya! - http://correo.yahoo.com.ar
Reply to: