Luego de poner a punto nuestro Ubuntu, y crear la máquina virtual con CentOS, continuaremos con personalizarlo a nuestro gusto (mío, al menos): sencillo y accesible…
Reemplazaremos Vi por Nano (como editor por defecto), instalaremos Midnight Commander (un gestor de archivos), modificaremos el grub, daremos acceso SSH a la Máquina Virtual y la convertiremos en una máquina «headless» (sin monitor) entre otras menudencias…

Empecemos… Arrancamos la máquina virtual creada (recuerda, doble click en ella) y te logueas: root y la contraseña (¡Ja! a que te sientes un hacker… pues si…)

Notas de Convención

Una de las cosas que me llamó la atención es la siguiente: Si una línea comienza con # significa que las órdenes son dadas por el usuario root, que ingresó en el sistema con su clave.

TODAS las líneas que se verán de ahora en más, se anteceden con # porque utilizaremos el usuario root. Omito, entonces, lo que está antes de este signo para evitar confusiones si utilizaron otro nombre de máquina y dominio.

Al final de esta serie (o en otras) observen que si el símbolo que se muestra es $ significa que se está utilizando la cuenta de un usuario que no es root. En ese caso, si el autor lo omitió o les da un error del tipo permiso denegado lo más probable es que necesiten anteceder la orden con un sudo.

Me pareció interesante remarcar está «sutileza».

Habilitando la red

Por defecto, CentOS no habilita la interfaz de red de la Máquina Virtual, por lo que hay que habilitarla…
Por defecto, es la eth0 (aunque la máquina virtual ofrece hasta 4, eth3). Por lo tanto, procederemos a habilitarla…

¡ATENCIÓN!: recuerden que el ratón está capturado, para «liberarlo» hay que presionar la tecla Control derecha (la otra, ->). Aún no podemos copiar y pegar por lo que hay que escribir toda la línea… Es más, hay que «tolerar» al editor «vi» por lo que presten atención para no sufrirlo como yo (si no están acostumbrados, claro):

# vi /etc/sysconfig/network-scripts/ifcg-eth0

(Si no encuentran ese archivo y están utilizando un CentOS 7, lean más abajo…)

Veremos al principio de la pantalla

DEVICE=eth0
HWADDR=08:00:27:91:F3:F5
TYPE=Ethernet
UUID=dca6f6c2-de77-4f37-a93a-53f13bf50c9e
ONBOOT=no
NM_CONTROLLED=yes
BOOTPROTO=dhcp

Ahora, bajar hasta la línea que dice ONBOOT=no
Ir al final y borrar el «no» (simplemente con la tecla «delete», actúa como un «backspace»), presionar la tecla I (de «insertar») y escribir «yes» (sin comillas); luego presionar «ESC» (la tecla escape del teclado), luego los dos puntos (:) y la tecla «x» y dar «enter», ya tenemos la consola de nuevo (fuera de vi), luego reinicamos (continúa luego de esta nota importante)…

Para quienes recorren esta guía con un CentOS 7

Algunas cosas han cambiado en CentOS 7, entre ellas cómo se nombran a los archivos de configuración de cada interfaz de red… Deberán identificar el archivo (si no me equivoco, debería ser ifcfg-enp03)… Gracias a mi amigo Oscar (que su ansiedad lo llevó a utilizar esa versión), podemos resolver el problema, así:

# mac=`cat /sys/class/net/e*/address`

En esa variable temporal se guardará la dirección MAC de la interfaz de red virtual que provee la Virtual Box…

# cat > /etc/udev/rules.d/70-persistent-net.rules <<EOM
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="$mac", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
EOM

Se agregará una nueva línea en las reglas persistentes para la red, con los datos necesarios para que «encuentre» nuestra interfaz en un archivo con el nombre que, hasta ahora, se utilizaba convencionalmente en CentOS…

# cd /etc/sysconfig/network-scripts
# sed '/^NAME=/s/=.*/=eth0/;/^ONBOOT/s/no/yes/' ifcfg-enp03 > ifcfg-eth0

Creamos el archivo con la configuración de la interfaz de red, tal como esperábamos encontrarlo… Un último paso, en tres movimientos:

# mv /etc/default/grub /etc/default/grub.in

Copia de respaldo de grub…

#sed '/GRUB_CMDLINE_LINUX/s/=.*/="net.ifnames=0"/' \
/etc/default/grub.in > /etc/default/grub

«Editamos» el archivo grub (una vez más, pero esta vez desde la línea de comamdo) para indicarle que de ahora en más, las interfaces de red las busque (y nombre) según la otrora convención…

# grub2-mkconfig -o /boot/grub2/grub.cfg

Hacemos efectivas las modificaciones e instalamos algunas utilidades para la red (que usaremos más adelante):

# yum install -y net-tools

Hecho esto…

Para ambos casos: Podemos continuar con un…

# reboot

Y darle «enter» y cuando que reinicie la Máquina Virtual, volver a loguearse…

Tendremos la red a nuestro alcance y podremos continuar…

A mi no me gusta Vi… Quiero Nano. (Y punto)

«Para gustos, los colores» y VI, por más que me lo santifiquen, es chichimeca… Por lo que indicaré cómo reemplazarlo por nano… Si lo desean, pueden saltarse este paso…

¿Sigues leyendo? ¡Eres de los míos!… Pues mira… Instalaremos nano:

# yum install nano

CentOS hará lo suyo, buscará en los repositorios (aún los oficiales) preguntará si queremos continuar (respondemos con «s» y «enter») y luego otra confirmación por el tema de las GPG key (que responderemos igual: «s» y «enter»)

Al finalizar, «nano» estará instalado… Ahora a hacerlo el editor por defecto…

# nano /etc/bashrc

Vamos al final del archivo, justo antes de la línea que dice # vim(…) insertamos esta línea:

export EDITOR="nano"

Luego Control+X, S y «enter»… ¿No es más simple? (Hasta lo dice al final de la pantalla…)

Pude alcanzar con cerrar la sesión (logout) y volver a ingresar… Pero si queremeos estar harto seguros, reiniciamos (reboot y enter) y podemos seguir…

Instalando Midnight Commander (MC)

Luego de «reloguearnos», podemos continuar…

Midnight Commander (MC) es un gestor de archivos en modo texto que, sabrán disculparme los puristas de la consola, me hace las horas más sencillas… Los que son «cuarentones» como yo, recordarán el tan útil y cómodo Norton Commander (NC). Es lo mismo… O mejor… O más rústico… Lo cierto es que me es útil, a por él…

# yum install mc

CentOS, otra vez, hará lo propio y nos pedirá confirmar nuestra acción… «S» y «enter» y lo instalará…

Luego, con un simple: «mc» y «enter» tendremos a nuestra disposición esta «deliciosa» aplicación…

Para poder echar mano al editor externo, sea VI o Nano, deberemos realizar esta acción: F9, letra O(pciones), C(onfiguración), E(ditor), A(ceptar)… Y a partir de ahora, cada vez que pulsemos F4, Nano (o vi) editará el archivo activo… De no hacerlo, usaremos el editor de MC, que si bien es amigable, no lo es tanto para mi gusto (lo siento)…

OBSERVACIÓN: si bien proveo las líneas de comando a utilizar, con MC instalado pueden navegar el disco y editar el archivo en cuestión con F4 (o ver su contenido con F3)… Copiar, mover, renombrar, etc… sin escribir una línea… Ya verán qué les es más cómodo…

Personalizando el arranque

El archivo «/etc/grub.conf» tiene el poder de administrar el arranque de CentOS (y otras distros de Linux)…

Acostumbrados (mal) los de Ubuntu, sabemos que luego hay que hacer un ritual que no es necesario en CentOS. Aquí, para mi sorpresa, es más simple: editar y reiniciar.

Lo que haremos, a continuación es: quitar la cuenta regresiva y la pantalla que «esconde» lo que pasa en el inicio… ¿Por qué?… Nuestro servidor virtual no tendrá «monitor», y de verlo (porque lo iniciamos «normal» o con «inicio desacoplable») , queremos ver alguna de esas leyendas en rojo que rezan «error» para resolverlo…

Procedamos:

Con el MC vamos a /etc y localizamos el archivo grub.conf, presionamos F4… Para los puristas de la consola, reemplacen nano por vi en la siguiente línea:

# nano /etc/grub.conf

Donde dice:

timeout=5

reemplazarlo por

timeout=0

Y al final de la línea que empieza con «kernel» eliminar la parte que reza «rgbh quiet», guardar y salir…

Es un buen momento para hacer un «reboot» desde consola… Veremos que el arranque no sólo es más «rápido» sino que nos muestra una serie de leyendas… Luego de esa «verborragia» aparecerá la acostumbrada pantalla de «login»…

Ingresamos… Si, nuevamente «root» y la contraseña…

Instalación de SSH server

Una de las cosas «interesantes» de CentOS a diferencia de Ubuntu (y las derivadas de Debian) es que por defecto para instalar paquetes la opción es «No» (acostumbrados a el «Si» de apt y sus diferentes sabores)… En la línea siguiente verán la «salvedad» de este ¿incordio?… Incomodidad

# yum -y install openssh

Mientras CentOS hace lo suyo, les explico: la opción «-y» acepta por defecto las acciones a tomar, es decir (a los Ubunteros/Debianeros y demás) da por hecho que «aceptamos» lo que va a pasar… Es interesante para acciones futuras, PERO (con mayúsculas) CentOS nos guarda un par de «sorpresitas» que iremos descubriendo al respecto más adelante… Por  ahora, tranquilos, funciona…

Tenemos SSH instalado, ahora a probarlo…

Reenvío de puertos entre Anfitrión (Ubuntu) e Invitado (CentOs)

Suena confuso, pero nuestro sistema operativo donde funciona la VirtualBox es Ubuntu… Es el ANFITRIÓN y en ella, DENTRO de la VirtualBox, tenemos un CentOS: el INVITADO…

Volvamos al gestor de las máquinas virtuales…

Cliqueamos en «Avanzadas»…

Luego en «Reenvío de puertos»…

Agregamos una nueva regla…

Y elegí la 28022 para el Anfitrión (Ubuntu) y dejar la usual para CentOS (22)… Para los detallistas, en el «Nombre» (que dice «Rule 1») pueden poner algo más descriptivo como «SSH» o el servicio que vayan a redirigir…

Le damos «Aceptar»… Explicaré a continuación un poco el tema…

Ubuntu es el Sistema Operativo que arranca nuestro equipo por defecto (o Windows, o Debian o Machintosh o lo que sea…) Entonces, va a utilizar el puerto 28022 (por capricho, puede ser cualquiera siempre que esté «libre») e internamente, por esas «magias» que tienen los controladores de red, conectará con la Máquina Virtual en el puerto 22… Lo de «magias» es un eufemismo capcioso, si alguna vez «jugaron» con un router o un switch entenderán lo que pasa…

Prueba de conexión por SSH

En el ANFITRIÓN (léase Ubuntu) abrimos una consola (control+alt+t) y escribiremos el siguiente conjuro (observen el $ que muestra el ejemplo y luego el # cuando ingresamos al CentOS):

$ ssh -p 28022 root@localhost
The authenticity of host '[localhost]:28022 ([127.0.0.1]:28022)' 
can't be established.
RSA key fingerprint is 13:89:aa:44:96:76:39:ef:e4:a7:cf:e9:0f:c8:51:17.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[localhost]:28022' (RSA) to the list 
of known hosts.
root@localhost's password:****
Last login: Sat May 14 22:46:42 2016
[root@mercurio ~]#

ACLARACIÓN: ¿por qué usamos «localhost»? Para evitar «profundizar» en el tema de cómo VirtualBox maneja las interfaces de red virtuales, hasta más adelante que cubriré el tópico, utilizaremos la facilidad de NATeo que se nos provee (y vimos previamente con el reenvío de puertos)… ¿Y la IP del invitado?¿No se puede utilizar? Si, pero me parece más prudente, por ahora, concentrarnos en lo «general» y cuando todo esté funcionando, ahondar en sutilezas…

Aceptamos, escribimos la clave de root usual y… ¡Estamos dentro de nuestra máquina virtual!… ¡Jope! (perdón la expresión) no es un milagro… Tenemos acceso por VirtualBox y por SSH… (Confieso, a mi me llevó más tiempo y mareos)…

NOTA: Si «rebota» la conexión, intenten reiniciar la máquina virtual. En CentOS 6.7 no hubo necesidad, pero quizás en el 7 si…

Ahora, salgamos de ella con un «exit», y volvamos a la consola de la VirtualBox, la que veníamos utilizando… (La ventana independiente)…

Escribimos «poweroff» y la apagamos…

Configurar la VirtualBox como «headless»

Ya no necesitaremos que cuando arranquemos el «servidor virtual» CentOS tenga una consola: consume recursos gráficos de nuestro Ubuntu sin necesidad, entonces haremos que cuando le demos «arranque» sea sin «consola», es decir» como una suerte de «demonio» bajo nuestro gobierno (no cuando arranca el equipo, que si lo desean les explicaré como)… Para ello abrimos, en la consola de nuestro Ubuntu escribiremos lo siguiente:

$ VBoxManage modifyvm Centos\ 6 --defaultfrontend headless

Explico: La parte «Centos\ 6» es porque cuando nombramos a nuestra VirtualBox usamos un espacio (para bash «\ » es un espacio) si utilizaron otro nombre, deberán reemplazarlo por tal… El resto, supongo, se explica por si mismo…

A partir de ahora, cada vez que arranquen la VirtualBox de CentOS no lo verán gráficamente, es decir, será «silencioso» y el modo de acceder a ella será por SSH o así:

Presionando en «Mostrar» verán esto (lo usual):

Y si «cliquean» en la «x» de la ventana, podrán cerrarla y que continúe en «segundo plano», luego de darle «Aceptar»:

Cerremos y sigamos por SSH

Sé que nos hemos excedido un poco, pero queda un último tramo, es simple y los dejo descansar…

Instalación de las «Guest Additions»

Volvamos a la parte anterior donde le decimos «Mostrar»… Y «montamos» las «Guest Additions»:

Nos logueamos con «root» y montamos el «iso» de las «Guest Additions» con:

# mount /dev/cdrom /media

Luego:

# cd /media
# ./VBoxLinuxAdditions.run

NOTA: En CentOS 7 es probable que acuse que falta «bzip2», y cancele la instalación de las Guest Addition se resuelve con:
# yum install -y bzip
También es probable que ciertos paquetes tengan que instalarse con el nombre completo. Estar atentos y tomar nota…

¡Ufa! falló… nos falta las bibliotecas del kernel, entonces a por ellas:

# yum -y install kernel-devel

Y reintentar:

# ./VBoxLinuxAdditions.run

Otra vez falló… Vamos de nuevo, falta el gcc…

# yum -y install gcc

Y reintentar

# ./VBoxLinuxAdditions.run

¡Éxito!.. Bueno, casi… Algo dice del D-Bus,… ¿Qué es?…
Luego de instruirme un poco en Google, dbus es un demonio que permite a los procesos comunicarse entre ellos. VMInfo, pretende utilizarlo pero… ¿Está disponible?… Veamos, el servicio se llama «messagebus»…

# service messagebus status
messagebus: servicio desconocido

¡Ajá!…

¿Está instalado? (Quizás para los expertos, la pregunta esté de más, pero recuerden que no soy experto e intento evitar las frustraciones, como ésta,… )

# yum list installed dbus
...
Error: No hay paquetes que se correspondan con la lista

Está claro: a instalar dbus (xq supongo que será más difícil indicarle a VMInfo que no lo utilice)

# yum -y install dbus
...

# service messagebus status
messagebus está detenido
# chkconfig messagebus on
# service messagebus start
# reboot

Cuando reinicie, si tenemos la consola de VirtualBox veremos que ya el mensaje de dbus no es visible; si ingresamos por SSH, luego de ingresar:

# cat /var/log/messages

Y veremos que al final desaparecen las referencias al error que, efectivamente, acabamos de resolver.

Recuperando el Ratón

Debido a que ya tenemos las Guest Additions en funcionamiento, podremos «liberar» nuestro puntero y evitar utilizar la tecla Control Derecha…

En nuestra ventana de terminal, presionamos sobre la opción «Entrada» del menú superior y luego (si no está activa) la opción «Integración del Ratón» (el icono que la acompaña es el dibujo de un «mouse» con una flecha amarilla)…

A partir de este momento, el ratón, no será capturado por la Virtual Box y podremos interactuar con ella y nuestro escritorio como es usual. Otras opciones que son de utilidad (de ahora en más) son:

  • Dispositivos ->Portapapeles compartido -> Bidireccional: cuando utilicemos la consola de la VirtualBox, podremos «pegar» lo que copiamos con Shift+Insert. Útil para «copiar» desde estos escritos (de ahora en más) y pegar allí…
  • Dispositivos ->Arrastrar y soltar -> Bidireccional: No tiene mucha utilidad en nuestro contexto actual, pero en otras máquinas virtuales que posean interfaz gráfica (léase, un gestor de ventanas como Gnome, Unity, KDE, OpenBox, etc.) esta facilidad puede facilitarnos ciertas actividades (por ejemplo, intercambiar archivos)…

Un analgésico «poweroff» y…

guardar el estado de la máquina… Con el nombre de «CentOS básico»… (por ejemplo)

A continuación…

  • Instalar LAMP: Deshabilitando SELinux (Oh! Herejía!), Agregado de repositorios accesorios, notas sobre cómo entiendo la filosofía CentOS en oposición a Ubuntu respecto a los respositorios, Instalación de Apache  Habilitando el firewall (iptables) de CentOS y reenvío de puertos de Anfitrión a Invitado (otra vez), Instalando MySQL, Instalando phpMyAdmin (un último esfuerzo) y resguardo del estado (por si acaso)
  • Últimos retoques: creando un nexo entre Anfitrión e Invitado y asegurando el ingreso: phpMyAdmin: liberando su poder, Actualizando phpMyAdmin (porqué no), Compartir carpetas entre el Anfitrión y el Invitado, crear un usuario y hacerlo sudoer, asegurar (deshabilitar) la cuenta root, y resguardo del estado (por si acaso)
  • Mejorando la interconexión y transporte de la Virtual Box: Conexiones de red en Virtual Box , Habilitar una segunda red, Configurando la seguna interfaz en Centos (Y a mano), Accediendo por el nombre de «host», Guardar estado, Transportar la Virtual Box
  • Ejemplos de uso del servidor de pruebas: conectar otra máquina virtual al CentOS, armando una red, restaurar una DB de desarrollo, Activar un sitio de prueba, utilizando las carpetas compartidas, Otras actividades propuestas (Conclusión)

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.