Administrando VMs
La virtualización hoy por hoy se ha convertido en la herramienta más usada por las organizaciones y usuarios comunes, ya que los ahorros en costes son bastante significativos, sin mencionar que es más fácil hacerle un respaldo, sincronización o clonación a una VM que a un servidor o equipo físico.
Ahora ya podemos virtualizar prácticamente todo; desde un servidor o PC, hasta un smarthphone o una red de datos, sin embargo manejar un pool de VMs incrustadas en un servidor o en puntos remotos no es tan sencillo y su administración puede causar bastantes dolores de cabeza. Y si le sumamos a esto que nuestro equipo no tiene entorno gráfico, o sí lo tiene pero los recursos son escasos, se puede crecer el enano. Es por eso que algunos administradores IT prefieren solucionar estas limitaciones "a la antigua", echando mano de la vieja consola.
Así las cosas, podremos instalar nuestras máquinas virtuales directamente desde el terminal, y arrancarlas con el inicio del sistema, lo cual en ocaciones nos proporciona ciertas libertades, ya que podemos modificar el funcionamiento de las VMs a nuestro antojo. Es por eso que daremos algunos tips para poder sortear estas dificultades, utilizando VirtualBox de Oracle, por tener calificación BBB (Bueno, Bonito y Barato)
Nota: Este artículo ha sido actualizado en Diciembre 2022. Ir a Update 2022 para ver los cambios.
Instalación
El primer paso es instalar Virtualbox 4x y crear la VM. Por consola, lea el excelente tutorial Integración Contínua: Instalar y configurar nuestra máquina virtual con VirtualBox, por consola.
No olviden que después de instalado y creadas las VMs, instalar Guest Additions y adicionar el usuario al grupo vboxusers.
No olviden que después de instalado y creadas las VMs, instalar Guest Additions y adicionar el usuario al grupo vboxusers.
adduser usuario vboxusers
Donde "usuario" es el nombre de tu usuario. Para verificarlo ejecuta en el terminal
echo $USER
Si ya la tiene instalada y su VM creada, aquí algunos parámetros que debe considerar. En el siguiente ejemplo, vamos a asumir que tenemos dos VM; una llamada 7 (Windows 7) y otra Kali (Kali Linux). Para conocer los detalles de nuestras VMs ejecutamos en el terminal:
VBoxManage list vms "7" {a14763d0-8135-4ed8-a794-4555aa307b8d} "kali" {0cc560a6-c41c-43f7-aa8a-b9d264432e4c}
Pero si quiere conocer los parámetros específicos de las VMs:
VBoxManage list vms -l
Comandos más usados
VBoxManage startvm VM (iniciar)
user@user:~$ VBoxManage startvm 7 Waiting for VM "7" to power on... VM "7" has been successfully started.
o
user@user:~$ VBoxManage startvm a14763d0-8135-4ed8-a794-4555aa307b8d Waiting for VM "a14763d0-8135-4ed8-a794-4555aa307b8d" to power on... VM "a14763d0-8135-4ed8-a794-4555aa307b8d" has been successfully started
El comando controlvm tiene varios estados (pause|resume|reset|poweroff|savestate); por ejemplo:
VBoxManage controlvm 7 reset (reinicio)
VBoxManage controlvm 7 poweroff (apagado).
VBoxManage controlvm 7 reset (reinicio)
VBoxManage controlvm 7 poweroff (apagado).
user@user:~$ VBoxManage controlvm 7 poweroff 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
VBoxManage controlvm 7 pause (pausar VM)
VBoxManage controlvm 7 resume (Reiniciar VM de la pausa)
VBoxManage controlvm 7 savestate (guardar el estado actual de la VM)
user@user:~$ VBoxManage controlvm 7 savestate 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Y para restablecerla nuevamente:
VBoxManage startvm 7 Waiting for VM "7" to power on... VM "7" has been successfully started
VBoxManage modifyvm 7 parametro (para modificar la VM)
VBoxManage createvm –name “7” –register (Crear VM)
Por terminal se puede hacer prácticamente todo. Crear la VM, clonarla, arrancarla, apagarla, reiniciarla, suspenderla, configurarla, etc, etc. Para profundizar en este tema, visite la guía de VirtualBox
Administración
El siguiente paso es administrar nuestras VMs sin utilizar el entorno gráfico y una de las mejores alternativas es phpvirtualbox
Pasos
Instalamos los paquetes necesarios:
apt-get install php5 php5-common php5-cli libapache2-mod-php5 php5-mcrypt mysql-server php5-mysql apache2 php-soap php5-gd
Asegúrese de tener instalado las cabeceras del kernel y dependencias
apt-get install linux-headers-$(uname -r) apt-get autoremove apt-get install build-essential module-assistant dkms
Ahora adicionamos nuestro usuario:
nano /etc/default/virtualbox
Y añadimos la linea (donde 'user' es nuestro usuario. Cámbielo por el suyo):
VBOXWEB_USER=user
Y reiniciamos los servicios:
update-rc.d vboxweb-service defaults /etc/init.d/vboxweb-service start
Luego verifique el estado:
/etc/init.d/vboxdrv status VirtualBox kernel modules (vboxdrv, vboxnetflt, vboxnetadp, vboxpci) are loaded.
Y si hay problemas, ejecute:
/etc/init.d/vboxdrv setup
Verifique el funcionamiento de su apache y base de datos. Para este paso debe haber configurado antes Apache + PHP + MySql
http://localhost/info.php # o http://ipdelservidor/info.php
Ahora descargamos phpvirtualbox, descomprimimos y creamos la carpeta (verifique en el portal oficial si la versión ha sido actualizada. En ese caso cambie 4.3-3 por la más reciente):
mkdir /var/www/html/phpvirtualbox cd /tmp/ wget -c --retry-connrefused -t 0 http://downloads.sourceforge.net/project/phpvirtualbox/phpvirtualbox-4.3-3.zip unzip phpvirtualbox-4.3-3.zip cp -R phpvirtualbox-4.3-3/* /var/www/html/phpvirtualbox/ rm -R phpvirtualbox-4.3-3* cd
Copiamos y modificamos el archivo de configuración:
cp /var/www/html/phpvirtualbox/config.php-example /var/www/html/phpvirtualbox/config.php nano /var/www/html/phpvirtualbox/config.php
Y cambiamos usuario y contraseña:
/* Username / Password for system user that runs VirtualBox */ var $username = 'vbox'; var $password = 'pass';
Nota: Si no quiere crear un usuario nuevo llamado 'vbox', puede cambiarlo por el nombre de su usuario y password actual del sistema con tan solo sustituir 'vbox' y 'pass'.
PHPVirtualBox
Finalmente accedemos a PHPVirtualBox por el navegador (podemos utilizar localhost, si estamos en el mismo equipo o la ip del servidor, si accedemos desde una ubicación diferente):
http://ipdelservidor/phpvirtualbox/ http://localhost/phpvirtualbox/
Para cambiar el usuario y pass por default de phpvirtualbox (admin/admin), una vez ingresado a PhpVirtualBox, pulsamos File y Change Password. Ahí colocamos la contraseña anterior (admin) y la nueva.
Extra
Verificar el soporte 3D (para Unity y otros entornos), ya que la VM puede ralentizarse.
/usr/lib/nux/unity_support_test -p
Para solucionarlo instale Guest Additions. También puede modificar la resolución, verificando primero si la deseada esta soportada:
xrandr
Y para las ediciones sin entorno gráfico, cambiar la resolución por defecto (800x600) con:
apt-get install virtualbox-guest-dkms VBoxManage setextradata global GUI/MaxGuestResolution any
Para conocer los errores más frecuentes, visite
Sourceforge
No olviden fortificar el servidor apache para evitar contratiempos:
PHPVirtualbox 5x
PHPVirtualbox ha actualizado su version a 5x al igual que VirtualBox. Es importante señalar que las versiones 4x de PHPVirtualbox no son compatibles con Virtualbox 5x. Debe actualizar su version:
echo "Pasos para instalar PHPVirtualbox 5x" echo "acceda por http://ipdelservidor/phpvirtualbox/ o http://localhost/phpvirtualbox/" mkdir /var/www/html/phpvirtualbox cd /tmp/ wget -c --retry-connrefused -t 0 http://downloads.sourceforge.net/project/phpvirtualbox/phpvirtualbox-5.0-2.zip' unzip phpvirtualbox-*.zip cp -R phpvirtualbox-* /var/www/html/virtualbox rm -R phpvirtualbox-* cd cp /var/www/html/phpvirtualbox/config.php-example /var/www/html/phpvirtualbox/config.php
Ahora cree y edite el archivo de configuración virtualbox y le ingresa los siguientes datos (donde "usuario" es la cuenta donde está instalando PHPVirtualbox):
nano /etc/default/virtualbox VBOXWEB_USER=usuario VBOXWEB_HOST=127.0.0.1
Y modifique el archivo config.php con la siguiente informacion:
nano /var/www/html/phpvirtualbox/config.php var $username = 'usuario'; # el mismo usuario de /etc/default/virtualbox var $password = 'su_password'; # su password de usuario var $location = 'http://127.0.0.1:18083/';
Y reinicie:
update-rc.d vboxweb-service defaults /etc/init.d/vboxweb-service start
Puede presentarse el caso de que
1. Verifique que SELinux no esté bloqueando el acceso a
2. Haga un
o puede correrlo en background:
3. Si recibe un error
vboxweb-service
no inicie (mensaje Fail
o Could not connect to host (http://127.0.0.1:18083/)
). En este caso, el culpable es vboxwebsrv
1. Verifique que SELinux no esté bloqueando el acceso a
vboxwebsrv
2. Haga un
ps ax | grep vboxwebsrv
para verificar si esta corriendo. Si no lo está, ejecute: vboxwebsrv > nul &
o puede correrlo en background:
/usr/lib/virtualbox/vboxwebsrv --background
3. Si recibe un error
/var/log/apache2/error.log
similar a: [evasive20:error] [pid 4697] [client 127.0.0.1:37310] client denied by server configuration: /var/www/html/phpvirtualbox/endpoints/api.php etc etc
Es posible que el módulo
mod_evasive
de apache y está bloqueando phpvirtualbox
. Siga los siguientes pasos: a. Verifique si mod_evasive
está activo. Abra el terminal y ejecute el siguiente comando: perl /usr/share/doc/libapache2-mod-evasive/examples/test.pl
Si el módulo evasive esta inactivo muestra:
HTTP/1.1 200 OK HTTP/1.1 200 OK HTTP/1.1 200 OK HTTP/1.1 200 OK
Si esta activo muestra:
HTTP/1.1 403 Forbidden HTTP/1.1 403 Forbidden HTTP/1.1 403 Forbidden HTTP/1.1 403 Forbidden
Si no está activo, vaya al paso 2. Si está activo, desactivelo y luego vaya al paso 2.
a2dismod evasive
2. Edite los archivos:
/etc/apache2/mods-available/evasive.conf /etc/apache2/mods-enabled/evasive.conf
Y asegúrese de se encuentren las líneas:
DOSLogDir "/var/log/apache2/mod_evasive.log" # registro de eventos DOSWhitelist 127.0.0.1 # excluir localhost (Puede agregar mas ips)
3. Guarde los cambios, active el módulo y reinicie apache:
a2enmod evasive /etc/init.d/apache2 force-reload
A partir de la versión 15.04 se solucionó el bug Kernel Service is not Running, por tanto ya no es necesario iniciar
/etc/init.d/vboxdrv
A continuación la instalación paso a paso PHPVirtualbox 5x para Ubuntu 16.04x (Xenial Xerus) LTS x64, VirtualBox 5x + Extension, Apache2, PHP7
Instalando Apache2
Asumiendo que ya tiene instalado las cabeceras (headers, build-essential module-assistant dkms, etc), instale Apache2..
apt -y install apache2 apache2-doc apache2-utils apache2-dev apache2-suexec-pristine libaprutil1 libaprutil1-dev
Edite /etc/apache2/apache2.conf y asegúrese de que contenga la siguiente información:
# Include the virtual host configurations: IncludeOptional sites-enabled/*.conf ServerName localhost ServerName gateproxy # el nombre de su servidor ServerName 192.168.1.10 # la ip de su servidor
Modifique /etc/apache2/sites-enabled/000-default.conf y asegúrese de que contenga la siguiente información:
< VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/html < Directory /> #Options FollowSymLinks Options None DirectoryIndex index.php index.html index.htm AllowOverride None < /Directory> < Directory "/var/www/html"> AuthType Basic AuthName "Restricted Content" AuthUserFile /etc/apache2/.htpasswd Require valid-user < /Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ < Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Require all granted < /Directory> LogLevel warn ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined < /VirtualHost> # vim: syntax=apache ts=4 sw=4 sts=4 sr noetEstablezca la contraseña de apache2 para su usuario
htpasswd -c /etc/apache2/.htpasswd $USERInstalando y configurando Virtualbox con Extension Pack
echo "deb http://download.virtualbox.org/virtualbox/debian $(lsb_release -sc) contrib" | tee /etc/apt/sources.list.d/virtualbox.list wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | apt-key add - vboxmanage list runningvms | sed -r 's/.*\{(.*)\}/\1/' | xargs -L1 -I {} VBoxManage controlvm {} savestate >/dev/null 2>&1 apt -y autoremove --purge virtualbox* >/dev/null 2>&1 rm -rf /etc/vbox >/dev/null 2>&1 apt update && apt -y install virtualbox-5.0 bridge-utils && dpkg --configure -a && apt -f install cd /tmp export VBOX_VER=`VBoxManage --version|awk -Fr '{print $1}'` VBoxManage extpack uninstall "Oracle VM VirtualBox Extension Pack" >/dev/null 2>&1 wget http://download.virtualbox.org/virtualbox/$VBOX_VER/Oracle_VM_VirtualBox_Extension_Pack-$VBOX_VER.vbox-extpack VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-$VBOX_VER.vbox-extpack cd usermod -a -G vboxusers $USER systemctl enable vboxweb-service systemctl start vboxweb-serviceInstalando PHP7
Antes de instalar, se recomienda encarecidamente eliminar cualquier versión anterior de php. No se recomienda por el momento usar PHPVirtualbox php 7.1, solo con PHP 7.0.15-0.
Desinstalar versione previas php...
Desinstalar versione previas php...
apt install php libapache2-mod-php a2dismod php5 a2dismod mpm_event a2enmod mpm_prefork apt purge libapache2-mod-php php 'php5*' apt purge php* apt autoremove
Use el repositorio de ondrej si falta algún paquete:
add-apt-repository ppa:ondrej/php --yes apt update
Instalando paquetes necesarios de PHPVirtualbox...
apt -y install language-pack-en-base apt -y install php7.0 php7.0-common php7.0-mysql libmcrypt-dev mcrypt php7.0-mcrypt php7.0-gd php7.0-xml php-xml php-xml-parser php7.0-curl php7.0-soap libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap php7.0-dev php-pear php-gettext libapache2-mod-php7.0 php7.0-json php7.0-cgi php7.0-mbstring php7.0-fpm php-xdebug php7.0-cli php7.0-bz2 php7.0-intl && apt -f install a2enmod php7.0
Instalando PHPVirtualbox...
mkdir -p /var/www/html/phpvirtualbox cd /tmp/ wget -c http://downloads.sourceforge.net/project/phpvirtualbox/phpvirtualbox-5.0-5.zip unzip phpvirtualbox-5.0-5.zip cp -R phpvirtualbox-5.0-5/* /var/www/html/phpvirtualbox/ rm -R phpvirtualbox-5.0-5* cd cp /var/www/html/phpvirtualbox/config.php-example /var/www/html/phpvirtualbox/config.php chown -R www-data:www-data /var/www/html/phpvirtualbox
Edite /var/www/html/phpvirtualbox/config.php y realice los siguientes cambios (se recomienda usar el mismo usuario y contraseña establecida para apache2, que puede ser la misma de su usuario de linux):
/* Username / Password for system user that runs VirtualBox */ var $username = 'vbox'; # Reemplace vbox por su usuario var $password = 'pass'; # Reemplace pass por su contraseña // Disable authentication var $noAuth = true; # Descomente esta línea
Cree el archivo /etc/default/virtualbox y agregue la siguiente información:
VBOXWEB_USER=vbox # Reemplace vbox por su usuario VBOXWEB_HOST=localhost VBOXWEB_AUTH_LIBRARY=null
Cree el archivo /etc/apache2/sites-enabled/phpvbox.conf y agregue la siguiente información (el puerto 11600 es un ejemplo. Puede ser cualquier puerto que elija siempre que no sea reservado):
< VirtualHost *:11600> ServerAdmin webmaster@localhost DocumentRoot /var/www/html/phpvirtualbox < Directory /> Options FollowSymLinks DirectoryIndex index.php index.html index.htm config.php AllowOverride None < /Directory> < Directory /var/www/html/phpvirtualbox/> AuthType Basic AuthName "Restricted Content" AuthUserFile /etc/apache2/.htpasswd Require valid-user < /Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ < Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Require all granted < /Directory> ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined < /VirtualHost>
Edite /etc/apache2/port.conf y agregue la siguiente información:
# PHPVBOX Listen 11600
Reinicie los servicios
systemctl restart apache2.service && systemctl restart vboxweb-service
Edite su firewall y abra los puertos TCP 11600,18083 para su interfaz de red local y reinicie. Ejemplo de regla iptables. Modifique los datos en dependencia de su red local (eth1= interfaz local y 192.168.1.0/24= rango y mascara)
/sbin/iptables -A INPUT -s 192.168.1.0/24 -i eth1 -p tcp -m multiport --dports 11600,18083 -j ACCEPT
Cree un script vigilante de vboxwebsrv (touch /etc/init.d/vboxweb.sh), establezca su propiedad ( chown root:root /etc/init.d/vboxweb.sh), dele permisos de ejecución (chmod +x /etc/init.d/vboxweb.sh) y agregue la siguiente información:
#!/bin/bash ### BEGIN INIT INFO # Provides: services reload # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start daemon at boot time # Description: Enable service provided by daemon. ### END INIT INFO # VBOXWEBSERV date=`date +%d/%m/%Y" "%H:%M:%S` if [[ `ps -A | grep vboxwebsrv` != "" ]];then echo -e "\nONLINE" else echo -e "\n" sudo -H -u vbox bash -c '/usr/lib/virtualbox/vboxwebsrv --background' fi
Programe vboxweb.sh en el cron cada 2 minutos (puede modificar el tiempo)
sudo crontab –e */02 * * * * /etc/init.d/vboxweb.sh
Acceda a sus VMs: http://192.168.1.10:11600 (en dependencia de la ip de su servidor) o http://localhost:11600 o http://localhost/phpvirtualbox/
Debe ingresar el usuario y la contraseña de su sistema, o la que eligió en el proceso de instalación. Si esta falla (algo muy común) ingrese con el usuario root y la contraseña de su sistema:
Importante:
En los archivos phpvbox.conf y 000-default.conf, por razones de publicación, se le a dado un espacio a las etiquetas que comienzan con <. Ejemplo: < /Directory>, cuando debería ser </Directory>, < VirtualHost *:11600> cuando debería ser <VirtualHost *:11600>
Para los que usan Virtualbox 5.1x, es probable que salga el siguiente mensaje:
Esto es solo una advertencia de que se requiere actualizar a phpVirtualbox 5.1x (pero a la fecha de esta publicación, no existe esta versión de phpVirtualbox. Va por la 5.0-5). Este mensaje no afecta el funcionamiento del aplicativo web.
Debe ingresar el usuario y la contraseña de su sistema, o la que eligió en el proceso de instalación. Si esta falla (algo muy común) ingrese con el usuario root y la contraseña de su sistema:
Importante:
En los archivos phpvbox.conf y 000-default.conf, por razones de publicación, se le a dado un espacio a las etiquetas que comienzan con <. Ejemplo: < /Directory>, cuando debería ser </Directory>, < VirtualHost *:11600> cuando debería ser <VirtualHost *:11600>
Para los que usan Virtualbox 5.1x, es probable que salga el siguiente mensaje:
Esto es solo una advertencia de que se requiere actualizar a phpVirtualbox 5.1x (pero a la fecha de esta publicación, no existe esta versión de phpVirtualbox. Va por la 5.0-5). Este mensaje no afecta el funcionamiento del aplicativo web.
Iniciando VMs automáticamente con el sistema
Cree el script vm ( touch /etc/init.d/vm), establezca su propiedad ( chown root:root /etc/init.d/vm), dele permisos de ejecución ( chmod +x /etc/init.d/vm) y agregue la siguiente información:
Reemplace
Tenga en cuenta que la cabecera del script debe quedar tal cual. No la modifique ni le agregue nada. Esta cabecera se basa en Linux Standard Base Core Specification (LSB headers), para que funcione correctamente con el comando update-rc.d y sus Runlevels.
Reemplace
tu_usuario
por el nombre de su usuario y ">my_vm_name por el nombre de su máquina virtual. Tenga especial cuidado con el uso de mayúsculas y minúsculas. Si tiene alguna duda sobre el nombre de su VM, puede reemplazarlo con el UUID (ej: VMNAME="4ec6acc1-a232-566d-a040-6bc4aadc19a6")
Tenga en cuenta que la cabecera del script debe quedar tal cual. No la modifique ni le agregue nada. Esta cabecera se basa en Linux Standard Base Core Specification (LSB headers), para que funcione correctamente con el comando update-rc.d y sus Runlevels.
#!/bin/bash ### BEGIN INIT INFO # Provides: vm # Required-Start: $local_fs $remote_fs $network $syslog $named # Required-Stop: $local_fs $remote_fs $network $syslog $named # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: starts vm # Description: starts vm using start-stop-daemon ### END INIT INFO # how to use: /etc/init.d/vm {start|stop|shutdown|reset|status} # Permissions: sudo chmod +x /etc/init.d/vm # update-rc.d add: sudo update-rc.d vm defaults 99 01 # remove: sudo update-rc.d -f vm remove # confirm update-rc.d: ls -al /etc/rc?.d/ | grep vm # add user vboxusers: sudo usermod -a -G vboxusers $USER # where $USER is your user VMUSER="tu_usuario" VMNAME="my_vm_name" # also you can put UUID in this variable (VMNAME="4ec6acc1-a232-566d-a040-6bc4aadc19a6") case "$1" in start) echo "Starting $VMNAME..." sudo -H -u $VMUSER VBoxManage startvm "$VMNAME" --type headless ;; stop) echo "Saving State $VMNAME..." sudo -H -u $VMUSER VBoxManage controlvm "$VMNAME" savestate sleep 20 ;; shutdown) echo "Shutting Down $VMNAME..." sudo -H -u $VMUSER VBoxManage controlvm "$VMNAME" acpipowerbutton sleep 20 ;; reset) echo "Resetting $VMNAME..." sudo -H -u $VMUSER VBoxManage controlvm "$VMNAME" reset ;; status) echo -n "VMNAME->";sudo -H -u $VMUSER VBoxManage showvminfo "$VMNAME" --machinereadable |grep "VMState="| cut -d "=" -f2 exit 1 ;; esac exit 0
Agregue la tarea para que su vm sea lo primero que inicie con el sistema y lo último que se cierre:
update-rc.d vm defaults 99 01
Es posible que no salga nada en pantalla, por tanto es prudente verificar si el arranque fue agregado:
ls -al /etc/rc?.d/ | grep vm lrwxrwxrwx 1 root root 12 ago 15 12:38 K01vm -> ../init.d/vm lrwxrwxrwx 1 root root 12 ago 15 12:38 K01vm -> ../init.d/vm lrwxrwxrwx 1 root root 12 ago 15 12:38 S04vm -> ../init.d/vm lrwxrwxrwx 1 root root 12 ago 15 12:38 S04vm -> ../init.d/vm lrwxrwxrwx 1 root root 12 ago 15 12:38 S04vm -> ../init.d/vm lrwxrwxrwx 1 root root 12 ago 15 12:38 S04vm -> ../init.d/vm lrwxrwxrwx 1 root root 12 ago 15 12:38 K01vm -> ../init.d/vm
Para iniciar o parar la VM manualmente, ejecute en el terminal:
/etc/init.d/vm start /etc/init.d/vm stop
Las opciones son: start|stop|shutdown|reset|status
Para iniciar las VMs en Windows podemos consultar VirtualBox: arrancando y controlando máquinas virtuales “sin cabeza” (GUI)
Para iniciar las VMs en Windows podemos consultar VirtualBox: arrancando y controlando máquinas virtuales “sin cabeza” (GUI)
Update 2023
phpvirtualbox se ha quedado sin soporte desde 2018 y su última versión fue la version 5.2. Afortunadamente el usuario BartekSz95 ha publicado el repositorio con muchos parches a la fecha y compatible con VirtualBox 7.x, php 8x y Ubuntu 22.04:
sudo apt -y install libapache2-mod-php php php-soap php-xml wget -c https://github.com/BartekSz95/phpvirtualbox/archive/main.zip unzip -q main.zip local_user=${SUDO_USER:-$(whoami)} mv phpvirtualbox-main/config.php-example phpvirtualbox-main/config.php sed -i "s:'vbox':'$local_user':g" phpvirtualbox-main/config.php sudo mv phpvirtualbox-main/ /var/www/html/phpvirtualbox sudo chown -R www-data:www-data /var/www/html/phpvirtualbox echo "VBOXWEB_USER=$local_user" | sudo tee /etc/default/virtualbox echo "VBOXWEB_HOST=localhost" | sudo tee -a /etc/default/virtualbox sudo usermod -aG vboxusers $local_user sudo service apache2 restart sudo service vboxweb-service stop > /dev/null sudo service vboxweb-service start
Cree un bash script para verificar si el puerto está activo (caso contrario iniciar el servicio):
#!/bin/bash if pgrep -x vboxwebsrv > /dev/null; then echo "vboxweb OK" else echo "vboxweb starting..." service vboxweb-service start sleep 10 # check again if pgrep -x vboxwebsrv > /dev/null; then echo "vboxweb start successful" else echo "vboxweb failed to start" logger "vboxweb failed to start" fi fi
Puede ver el script completo de instalación en nuestro repo Vault.
Y acceder por:
http://localhost/phpvirtualbox
Con las credenciales (puede cambiarlas en el menu "File > Change Password"):
admin admin
Y para interactuar con las máquinas virtuales, instale remmina:
sudo apt install -y remmina remmina-plugin-vnc
o vinagre:
sudo apt install -y vinagre
Y se conecta a
localhost:3389
Remote Display |
Y no olvide marcar la casilla "Enable Server" en la pestaña "Remote Display" para que pueda conectarse a la VM.
Post a Comment