VPS local con Ubuntu y VirtualBox

Hace algún tiempo publiqué una rápida revisión de enlaces con algunos artículos con información de [cómo montar un VPS->Intentando montar un VPS].

Entonces, mi intención era crear una [máquina virtual->Máquinas virtuales en Ubuntu/Linux] para poder comenzar a experimentar con algunas cosas en forma local — decidirse por un VPS implica un conocimiento técnico suficiente para hacer frente a cosas por las que en un alojamiento compartido jamás tendrías que preocuparte, como instalar y configurar Apache u otro servidor web, firewall, seguridad, asegurar rendimiento, etc… acá no estarás haciendo las cosas por medio de algún panel de control, sino probablemente lo tengas que hacer todo por consola, por lo que montar una máquina virtual en local es una buena opción si no quieres estar pagando por un servicio sólo para experimentar. Al final, si eres lo bastante aplicado, deberías terminar con una configuración que quede como un guante (perfectamente adaptada a tus requerimientos) y con el conocimiento necesario para aventurarte en algún proyecto público.

Los ingredientes necesarios son:

  • VirtualBox, para crear y administrar la máquina virtual / VPS. La versión 2.2, publicada hace muy poco, mantiene la facilidad en la creación de máquinas virtuales, a la vez que hace mucho más fácil la tarea de conectarse desde el anfitrión al invitado gracias a la opción “Host-only Network”.
  • Ubuntu JeOS: una variante eficiente de Ubuntu, especialmente configurada para aplicaciones virtualizadas, es decir, una instalación mínima de Ubuntu para servidores que permite tener la funcionalidad necesaria ocupando pocos recursos, lo que es una gran ventaja para montar un VPS ya que su costo estará ligado a la cantidad de espacio (y memoria) que utilices… y aquí no encontrarás promociones serias sobre “almacenamiento ilimitado” o cantidades ridículamente grandes de espacio a un bajo costo. Como sucede con Ubuntu, hay varias versiones “actuales” al mismo tiempo: en este momento, la 8.04.2 es la última actualización de Hardy Heron, la versión con soporte a largo plazo (LTS, supuestamente más estable y probado) que puedes descargar como imagen de CD; o si prefieres tener un software más actualizado, puedes descargar la versión para servidores de Intrepid Ibex e instalar una máquina virtual mínima desde el mismo CD o bien generar una imagen instalable.

El proceso de crear la máquina virtual con VirtualBox es bastante sencillo, y cuenta con una interfaz gráfica en forma de asistente que guía a través de todo el proceso. Una vez creada, puedes ajustar aún más opciones en el apartado de Configuración. Si quieres simular una situación realista, podrías ajustar la configuración al VPS que tienes en mira (por ejemplo, de acuerdo a las configuraciones ofrecidas por Slicehost), o bien asignar los recursos necesarios para un trabajo más intenso. Éstas son algunas de las opciones que he seleccionado:

Al iniciar por primera vez, comenzará el proceso de instalación de Ubuntu. Luego de terminada la instalación, recuerda “sacar” la imagen de Ubuntu JeOS, o el proceso de instalación comenzará de nuevo.

El detalle fundamental para nuestro caso está en la configuración de red, en la que habrá que especificar dos adaptadores: el primero, conectado a NAT permitirá el acceso desde la máquina virtual a internet; el segundo, conectado a “Host-only network” permitirá la comunicación entre la máquina real y la virtual.

Una vez lista la instalación, revisaremos que funcionen algunas cosas: en la máquina anfitriona, abre una terminal y ejecuta ifconfig. Busca la sección que comience con vboxnet, se debería ver algo así como

vboxnet0  Link encap:Ethernet  HWaddr 00:76:62:6e:65:74 
              inet addr:192.168.56.1  Bcast:192.168.56.255  Mask:255.255.255.0

Donde la IP 192.168.56.1 designará la dirección de un dispositivo virtual en tu máquina real, es decir, una dirección a la cual la máquina virtual se puede conectar.

Ahora, a configurar la máquina virtual para que se conecte a la misma red (192.168.56.*): comienza una sesión en ella y a editar la configuración de la red. Si no tienes un editor de texto instalado, puedes hacer aptitude install nano; y luego sudo nano /etc/network/interfaces, donde debes agregar las siguientes líneas:

auto eth1
iface eth1 inet static
       address 192.168.56.2
       netmask 255.255.255.0

Ahora a reiniciar la red, con sudo /etc/init.d/networking restart y la máquina virtual ya debería estar ubicable en la dirección 192.168.56.2 — si aun no has instalado un servidor web en ella, lo puedes comprobar enviando un ping. A veces la máquina real no “ve” inmediatamente a la máquina virtual en esa dirección; puedes solucionarlo enviando un ping desde la máquina virtual a la máquina real (que está en 192.168.56.1) y viceversa.

Con esto ya solucionado, ahora “sólo” queda la parte web: instalar el servidor web de tu preferencia, PHP, MySQL u otras bases de datos, Ruby on Rails, etc.

Si te decides por la clásica configuración LAMP, puedes hacerlo fácilmente ejecutando tasksel donde tendrás una rudimentaria interfaz gráfica para hacerlo. Junto con ello, también instalé el servidor OpenSSH: como no soy un usuario experto de la terminal, prefiero conectarme a la máquina virtual vía SSH para poder utilizar la consola de GNOME de mi máquina real. Por lo demás, VirtualBox permite iniciar una máquina virtual en modo “headless” (sin una ventana abierta), que resulta bastante útil si decides seguir esta alternativa.

En este punto, tu máquina virtual estará en el punto inicial para comenzar a jugar con ella. ¡Suerte!