Una de las plataformas de virtualización con mayor aceptación en el mercado actualmente es VMWare, en sus versiones enterprise tales como ESX/ESXi o en su versión gratuita (apta para PoC, o uso hogareño), VMWare Server. Quienes me conocen, saben que no tengo demasiada simpatía con este producto, lo cual hace que mi interés en el mismo no sea mas allá que instalarlo en algún server, crear máquinas virtuales y hacer alguna que otra tarea administrativa con el, pero no más.
Esta terrorífica historia que hoy les traigo, me sucedió hace algunos meses en un servidor productivo, que utilizaba VMWare Server. El equipo se había caído, y por algún motivo extraño la interfaz web no levantaba. Siguiendo la Ley de Murphy: "Si algo puede salir mal, lo hará..."
Una de las VM's no había levantado correctamente y no tenía forma alguna de conectarme a ella para ver por qué no booteaba el sistema operativo, así que buscando en Google, encontré esto:
Todos sabemos que muchas plataformas de virtualización permiten añadir un servidor VNC a fin de poder conectarse a la máquina virtual. Esto se define dentro de la propia configuración de la VM, por lo cual, si tiene su propia configuración, significa que hay un archivo donde esa configuración se almacena, y este utilizando VMWare, es un archivo
.vmx
y se encuentra en /var/lib/vmware/vms/La primera directiva que añadimos, tiene un valor entero, y es el número de puerto que bindearemos nuestro VNC, es importante que ese puerto TCP, al que conectaremos con el cliente VNC, sea utilizado únicamente por esa VM, debido a que por cada una de estas a la que nosotros le habilitemos el servidor VNC, vamos a utilizar un puerto diferente.RemoteDisplay.vnc.port = "5900" RemoteDisplay.vnc.enabled = "TRUE" RemoteDisplay.vnc.password = "foobar"
El segundo parámetro tiene un valor booleano, (TRUE o FALSE), y nos va a permitir habilitar o deshabilitar el servidor VNC. Y por su parte le tercero, es la contraseña que utilizaremos para acceder a este con nuestro cliente. Una vez hecho esto, procedemos a levantar la máquina virtual, en este caso, su nombre es foobar, y el VMWare Server se encuentra corriendo en el localhost:
Si todo está bien, esto no debería tardar mas de dos o tres segundos, una vez listo. Debemos conectarnos con cualquier cliente VNC, por ejemplo Vinagre.# vmrun -T server -h 'https://localhost:8333/sdk' -u root -p crackme start "[datastore]" "foobar/foobar.vmx"
Siempre es bueno verificar que el puerto realmente escuche:
Y ahora si podemos conectarnos a el. Como en este caso debido a que existia un firewall entre el servidor y yo, la forma rápida de hacerlo era mediante un tunel SSH:# netstat -tnpa | grep 5900 tcp 0 0 0.0.0.0:5900 0.0.0.0:* LISTEN 8244/vmware-vmx
Para ahora sí conectar a la máquina virtual utilizando, en mi caso, Vinagre:ssh -N -L 8000:127.0.0.1:5900 vmware_user@someplace
# vinagre localhost:8000
Una pregunta. ¿Cuál es tu plataforma de virtualización preferida? Porque probé con varias y todas me dan algún tipo problema distinto así que todavía no se con cuál quedarme.
ResponderEliminar@Emperor: Como estás?, quizá te parezca básica mi respuesta pero me gusta mucho (aunque aún le falta) KVM (Kernel-based) Virtual Machine. KVM + libvirt + qemu anda realmente muy bien. Tengo experiencia implementandoló sobre RHEL/CentOS e OpenIndiana y siempre tuve excelentes resultados.
EliminarHola Facu anexo a modo informativo que dicho Hack funciona correctamente hasta ESXi 4.1 , a partir de la versión 5.0 de ESXi hay que abrir los puertos del Firewall aparte de agregar esas 3 lineas en los .vmx
ResponderEliminarDejo el link de la info de como abrir los puertos en el Firewall
http://communities.vmware.com/thread/337924?tstart=0
Saludos
Gracias! Excelente aporte :-)
Eliminaryo hubiera preferido virtualbox o qemu , aunque en vmware se da la opcion de soporte 3d en las maquinas virtuales , en virtualbox esa opcion solo se da si la maquina original es un windows yo probe sobre un debian y no pude conseguir 3d en la maquina virtual si sabes alguna forma de acerlo podes explicarlo en una proxima nota gracias!!!
ResponderEliminarKvm + libvirt + qemu + virt-manager!!! (+ arch linux :P)
ResponderEliminarMuy buena, gracias - Encontre esta pagina interesante sobre linux - instalaciones linux
ResponderEliminarEntorno productivo sobre VMware Server?? Que huevos loco, al menos que pongan el ESXi free
ResponderEliminarIt was very nice article and it is very useful to Linux learners.We also provide Linux online training
ResponderEliminar