Creando un servidor de pruebas (recargado) [7/7]

Ya nuestra Virtual Box es algo maduro, que podemos transportar para hacer nuestros experimentos sin comprometer ordenadores ni tener que esperar a llegar al laboratorio…
Para “finalizar” esta serie, que he disfrutado en hacer y espero ustedes en seguir, propondré un par de “experiencias” a realizar con nuestro CentOS…

Conectar dos Virtual Box

En el artículo anterior vimos como activar una segunda interfaz de red y las razones por lo que lo hicimos… Repetiremos los mismos pasos en otra Virtual Box que tengamos, en mi caso tengo un Windows XP (y bueno, es lo que hay) al que conectaré al CentOS.

Vale aclarar que a esta segunda Virtual Box le asignaré una IP diferente a la que utilicé en CentOS… Siguiendo mi ejemplo, utilizaré 192.168.56.102…

Una vez iniciado el XP, vamos a Configuración de Red…

Botón secundario sobre la “nueva” red que detectó Windows (e instaló)… Seleccionamos “Propiedades” del menú contextual…

Elegimos “Protocolo Internet…” y el botón Propiedades…

Los valores se explican por si mismos… Aceptamos ambas ventanas y abrimos una terminal…

Realicemos “ping” a Ubuntu (192.168.56.1)…

Responde… Iniciemos el CentOS (si no está corriendo ya)… Y probemos si nos responde a un “ping”…

¡Responde!.. Sigamos probando si todo está bien… Abramos en XP un navegador y pongamos la dirección del CentOS…

Apache nos da la bienvenida… ¿Y el phpMyAdmin?…

¡También funciona!… Ahora.. un “truco sucio” para no hacer más complicado esto… Le indicaremos a XP que cuando querramos “navegar” a mercurio, www.mercurio.local, mercurio.local (según mi ejemplo) sepa a qué IP debe acudir…

En la carpeta c:\windows\system32\drivers\etc está el archivo “hosts” (similar, si no igual) al que previamente editamos en Ubuntu…

Editamos, guardamos y salimos…

Ahora, en el navegador, si ponemos cualquiera de esas direcciones (mercurio, www.mercurio.local o mercurio.local) se comportará del mismo modo que si navegaramos a google.com…

¡Éxito!…

Exportar e Importar una base de datos

Si bien tenemos phpMyAdmin a nuestra disposición, exportar e importar una base de datos puede provocar que no logre la operación con éxito porque es demasiado grande…

Por lo tanto, les pasaré dos “tips” que puede sacarlos de un apuro…

Supongamos que en un servidor o nuestra máquina de escritorio tenemos una base de datos que queremos “llevar” a nuestro flamante CentOS… Para “exportarla”, en realidad hacemos un “dump” (volcado) de la misma, lo que nos dará por resultado un archivo SQL que, al mismo tiempo, comprimiremos para facilitar su transporte:

$ mysqldump -u [usuario] -p base_de_datos | gzip -9 > [archivo.sql.gz]

Supongamos que nuestro usuario es “pepe” y tiene “derechos” sobre la base de datos que se llama “datos”.. quedaría así, como ejemplo de ejecución:

$ mysqldump -u pepe -p datos | gzip -9 > [datos.sql.gz]
Enter password:

Luego de ingresar la clave del usuario “pepe”, cuando termine la ejecución, tendremos en la carpeta que ejecutamos la orden el archivo datos.sql.gz listo para copiar a un dispositivo y llevarlo a la máqquian donde esté nuestro CentOS virtualizado.

Ese archivo lo pondremos en la carpeta que compartimos previamente. Luego, siguiendo aquel ejemplo, en el CentOS, luego de loguearnos (como administrador, porque root no está activo para la consola pero aún si para mysql) crearemos la base de datos para importar los datos:

NOTA: es importante observar el “;” al final de la instrucción para crear la base de datos… Es lo que le indica a MySQL que hemos terminado. Caso contrario, hasta que no lo escriban, seguirá esperando el final de la instrucción.

$ mysql -u root -p
Enter password:
mysql> CREATE DATABASE datos;
mysql> exit
Bye
$

Ahora que la base de datos “datos” está creada podremos importarla, la estructura de la orden es la siguiente:

$ gunzip < [archivo.sql.gz] | mysql -u [usuario] -p base_de_datos

Siguiendo el ejemplo, el archivo que trajimos y dejamos en la carpeta compartida (en mi caso sf_IntercambioVB), el usuario “root” (para mysql), la base “datos” . Esto lo ejecutamos en la consola (o vía SSH) del CentOS:

$ gunzip < /media/sf_IntercambioVB/datos.sql.gz] | mysql -u root -p datos

Puesta la clave que se nos solicita, al terminar, verdad absoluta, la base de datos está importada y disponible en MySQL del CentOS.

¿Permiso denegado?… ¡Ah, olvidaron el usuario que están usando no pertenece al grupo de vboxsf!… Les recuerdo esto

OBSERVACION: No quise complicar las cosas evitando que el usuario root pueda operar en MySQL internamente, ni indicar cómo crear otro usuario y darle “superpoderes”. Hay muchas guías en internet que indican como hacerlo. Sin embargo, no descarto la posibilidad de ampliar este y otros temas “pendientes” en un futuro artículo…

Activar un sitio de prueba, utilizando las carpetas compartidas

Y ya que estamos en el CentOS, nos queda (según mis intenciones) un último tema: ver nuestros desarrollos web sin tener que subirlos a un servidor de producción, ya que tenemos el de pruebas…

Sabemos cómo compartir una carpeta entre el Anfitrión e Invitado, por lo cual es una buena idea seguir esos pasos para compartir otra carpeta que, supongamos se llama “Desarrollos” y será accesible desde /media/sf_Desarrollos y dentro de ella, por ejemplo:

$ ll /media/sf_IntercambioVB/
...
drwxrwx---. 1 root vboxsf 4096 may 19 19:53 desarrollo_1
drwxrwx---. 1 root vboxsf 4096 may 19 19:53 desarrollo_2
-rwxrwx---. 1 root vboxsf 3754878 may 12 21:43 datos.sql.gz
$

CentOS en particular, la carpeta que busca Apache para “compartir” es /var/www/html… Y allí va a buscar lo que tiene que “servir”…

Hemos visto, en el caso de phpMyAdmin, que tuvimos que “alterar” el archivo que le indica a Apache cómo encontrar su carpeta para poder proveerlo… Usaremos el mismo principio, para en este caso, poder acceder a nuestros desarrollos:

Crearemos un archivo en /etc/httpd/conf.d que se llamará desa1.conf

$ sudo nano /etc/httpd/conf.d/desa1.conf
Alias /desa1 /media/sf_IntercambioVB/desarrollo_1

<Directory /media/sf_IntercambioVB/desarrollo_1/>
 AddDefaultCharset UTF-8
</Directory>

Guardamos y salimos, reiniciamos el servicio de Apache:

$ sudo service httpd restart

Desde el navegador del Anfitrión o de la otra Virtual Box (¿Recuerdan la XP de aquí arriba?) podremos acceder vía http://mercurio/desa1

De ahora en más, el resto, es repetir los pasos…

Conclusiones

Hay un montón por delante que queda pendiente y escapa al objeto de esta serie de guías: iptables, csf (o ufw) para facilitar las cosas; montar un servidor de correos; mejorar la resolución del dominio de CentOS en la Virtual Box desde el Anfitrión; mejorar la seguridad de SSH; incluso acceder a la Virtual Box desde la “nube”; hacer que arranque como un demonio al arrancar el Anfitrión…

Incluso cosas específicas al uso de Virtual Box, sus detalles y menudencias… O instalar WebMin y junto a VirtualMin emular un servidor hecho y derecho… O probar SSL… En fin, demasiado para un “principiante” (como me puse en ese rol) que se frustra por las habidas guías que hay en la “Red” y, en algún punto fallan dejando más inquietudes que certezas…

He hecho esta guía desde cero, probando y probando cada paso, anotando y observando cada detalle intentando dejar de lado toda “obviedad”, editando y aclarando, según los comentarios, cada detalle que se me escapó en favor de que quien llegue a ella tenga la seguridad que “alguien” se puso en sus zapatos y decidió escribir un “tuto” sin fallas…

El resto son, simplemente, “¿Qué pasaría si…?” y ahí es donde invoco, solidariamente, la voluntad de participar para que otros aprendan sin frustraciones…

¡Hasta la próxima!

PD: ¡GRACIAS MIGUEL! por tu tiempo, tu paciencia y tu “don de gentes”…

Esta entrada fue publicada en Instalar linux, Linux, Maquinas Virtuales y etiquetada , . Guarda el enlace permanente.

Deja un comentario