Instalar SO remotamente con IPMI

29 Mayo 2013 at 19:31 by Adrián Pérez

remoteLas interfaces IPMI de los servidores Supermicro, nos permiten gestionar remotamente un servidor aun cuando éste está apagado, o como en el caso que nos ocupa hoy, incluso nos permiten hacer instalaciones remotas de sistemas operativos.

La idea es simple: la interfaz IPMI tiene autonomia propia, independientemente del estado del propio servidor. Así pues, podemos conectar vía web con la interfaz IPMI del servidor, y configurar en Virtual Media > CD-ROM Image, la ruta donde almacenaremos la imagen ISO con el sistema operativo. Esta imagen, deberemos almacenarla en un segundo servidor al cual se pueda acceder desde la interfaz IPMI (típicamente un servidor ubicado en la misma red).

Las pruebas han sido realizadas con una interfaz IPMI con las siguientes características:

  • Firmware Revision: 02.15
  • Firmware Build Time: 2013-01-18

El servidor donde se ha alojado la imagen, ha sido un servidor CentOS sin samba préviamente instalado. Así pues, ha sido necesario instalar y configurar samba para permitir el acceso a la ISO desde la interfaz IPMI. Si se tuviera un servidor Windows, este apartado se haría de forma diferente.

Configurar samba para compartir la imagen del SO

El primer paso, en mi caso, ha sido configurar samba en el servidor remoto, para hacer accesible la imagen ISO a la interfaz IPMI. Para ello he seguido los pasos descritos a continuación:

1- Configurar iptables para permitir el acceso a samba desde la interfaz IPMI

[root@miServer]# iptables -I INPUT -m state --state NEW -m udp -p udp -s 80.80.80.0/24 --dport 135:139 -j ACCEPT
[root@miServer]# iptables -I INPUT -m state --state NEW -m udp -p udp -s 80.80.80.0/24 --dport 445 -j ACCEPT
[root@miServer]# iptables -I INPUT -m state --state NEW -m tcp -p tcp -s 80.80.80.0/24 --dport 135:139 -j ACCEPT
[root@miServer]# iptables -I INPUT -m state --state NEW -m tcp -p tcp -s 80.80.80.0/24 --dport 445 -j ACCEPT
[root@miServer]# service iptables save

2-  Una vez abierto iptables, (y esperemos que con selinux deshabilitado), se podrá pasar a instalar samba.

[root@miServer]# yum install samba samba-client samba-common

3- Tras instalar samba (y sus dependencias), ya tendremos el fichero de configuración por defecto de samba, en /etc/samba/smb.conf, que podremos pasar a editar. En principio nos servirá la configuración que viene por defecto en la sección "Global Settings", que quedaría así:

[global]
workgroup = MYGROUP
server string = Samba Server Version %v
security = user
passdb backend = tdbsam

En la sección "Share Definitions" del mismo fichero, podremos definir la ruta al directorio que contenga la imagen ISO del SO que se quiere instalar. Por ejemplo, podemos crear un directorio en la raíz, llamado "isos" donde dejar la ISO que se quiere compartir:

[root@miServer]# mkdir /isos
[root@miServer]# mv /tmp/CentOS-6.3-x86_64-minimal.iso /isos/

Acto seguido, podemos  crear en la sección "Share Definitions" del fichero smb.conf, la sección para compartir dicho directorio. El resto de "shares" podemos comentarlos, ya que no los usaremos:

[isos]
comment = SO Images Folder
path = /isos
writable = no
public = yes
browseable = yes

4- Tras configurar el fichero smb.conf, podremos iniciar samba.

[root@miServer]# /etc/init.d/smb start
Iniciando servicios SMB: [ OK ]

5- Hecho esto, necesitaremos crear el usuario "ipmiuser" que hemos indicado en el fichero de configuración, para permitir el acceso al "share" que contiene las isos:

[root@miServer]# useradd ipmiuser -s /sbin/nologin
[root@miServer]# smbpasswd -a ipmiuser
New SMB password:
Retype new SMB password:
Added user ipmiuser.

6- Podremos verificar si hemos realizado correctamente el proceso, ejecutando desde el propio servidor, lo siguiente:

[root@miServer]# smbclient -L localhost -U ipmiuser

Enter ipmiuser's password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.5.8-75.fc13]

Sharename Type Comment
--------- ---- -------
isos Disk SO Images Folder
IPC$ IPC IPC Service (Samba Server Version 3.5.8-75.fc13)

7- También podremos verificar el usuario samba con:

[root@miServer]# pdbedit -L -v

Instalación remota del SO desde IPMI

Una vez tengamos listo samba, podremos empezar el proceso de instalación remota del sistema operativo. Para ello, nos loguearemos a la página web de administración IPMI del servidor al que queremos reinstalarle el SO. Una vez logueados, iremos a la sección Virtual Media > CD-ROM Image. En esta sección se nos pedirá incluir los detalles de la ubicación compartida de la imagen ISO. En nuestro caso indicaremos:

  • Share host: la IP del servidor remoto donde hemos instalado samba para compartir la imagen. Ej. 80.81.82.84
  • Path to image: la ruta a la imagen ISO a usar, partiendo del directorio compartido con samba. Ej. \isos\CentOS-6.3-x86_64-minimal.iso
  • User/Pass: si se ha definido (como en nuestro caso), en nombre de usuario con acceso a la carpeta compartida. Ej. ipmiuser

Una vez introducidos los detalles, pulsaremos sobre "mount" para montar la imagen. Al hacer ésto, nos aparecerá el siguiente mensaje:

"Please check the device status to confirm whether the image is mounted/unmounted."

Si todo va bien, al pulsar aceptar para cerrar el dialogo anterior, se refrescará la ventana y se verá el siguiente mensaje en la ventana actual. Cuidado porqué no aparece de forma muy visible:

CDROM&ISO Status There is a disk mounted.

El resultado final nos dará una pantalla parecida a la siguiente:

ipmi_image

 

Pulsaremos sobre "Save" y ya podremos reiniciar el servidor (también desde la interfaz IPMI) y monitorizar el proceso de arranque para bootar desde la nueva imagen ISO.

NOTA: IPMI y Java pueden dar MUCHOS dolores de cabeza. Una opción es, en lugar de usar la propia interfaz web IPMI, usar la herramienta IPMIView, que nos permite gestionar múltiples interfaces IPMI de forma centralizada. Si aun así tienes problemas, paciencia y Google.

Si se opta por continuar desde la interfaz web, bastará con ir a Remote Control > Console Redirection, para lanzar la consola y posteriormente reiniciar el equipo desde Remote Control > Power Control, desde donde se podrá seleccionar "Reset Server" para posteriormente pulsar sobre "Perform Action", lo cual reiniciará el servidor. Hecho esto, se deberá monitorizar el proceso desde la consola remota que se ha abierto desde la sección "Console Redirection". Durante el proceso de boot, ya se iniciará automáticamente el sistema desde la imagen del SO, y por tanto, podremos realizar la instalación del SO desde la Consola KVM de IPMI.

Me he encontrado en alguna ocasión con algún error al ejecutar la consola KVM, del estilo "Connection failure". Afortunadamente, las interfaces IPMI tienen una opción para reiniciar la interfaz KVM desde "Maintenance > IKVM Reset". A tener en cuenta si nos encontramos con errores parecidos.

En cualquier caso, otra opción muy muy útil que nos ofrecen las interfaces IPMI de Supermicro para gestionar remotamente nuestros servidores.

 

Fuentes "Cómo instalar samba":

Fuentes "Instalación de SO remoto mediante IPMI":

Flickr! Foto por JD Hancock