viernes, 13 de febrero de 2015

Gestión de S.A.I (UPS) por interface RS-232 (puerto serie) en Ubuntu Server 12.04



En esta ocasión vamos a instalar y configurar un software de gestión para UPS en Ubuntu 12.04. En este escenario tenemos 3 servidores protegidos eléctricamente por una UPS KEHUA TECH KR1000-J conectada a uno de ellos por interface RS-232 (puerto serie) el cual ejecuta Ubuntu Server 12.04; el objetivo es apagar todos los servidores protegidos por esta UPS ante la falla de AC.

Debo acotar que en este escenario hay servidores Linux y Windows, veremos como apagar estos durante la falla del suministro eléctrico.

Para este propósito vamos a instalar el Upsilon 2000 para Linux en el server que controla la UPS, en el siguiente link se puede descargar el software.


En este link hay una guía de instalación 


Por tanto no vamos a entrar en los detalles de la instalación, solo comentar que finalizando la instalación nos da un error (al menos en mi Ubuntu 12.04 server) debido a que el instalador no puede modificar el fichero /etc/rc.d/rc.local porque no lo encuentra, en este paso el instalador trata de garantizar el inicio del agente de monitoreo en cada incio del sistema de modo que manualmente modificaremos nuestro rc.local para este propósito, en mi instalación de Ubuntu se encuentra en /etc/rc.local de modo que escribiremos en la consola

nano /etc/rc.local y al final del archivo y antes de la línea que contiene exit 0 escribiremos
/etc/upsilon/upsilon start 

De este modo garantizamos el monitoreo de la UPS desde la carga del sistema.


Configurando UPsilon en Linux

Editamos el fichero /etc/upsilon/upsilon.cfg que contiene lo siguiente:

  



  •  AC Fail Delay : Tiempo en minutos en que comenzará el apagado del sistema después de la falla de AC, entre paréntesis los posibles valores, entre corchetes los valores establecidos
  • Batt Low Delay: Tiempo en que comenzara el apagado por batería baja
  • Turn Off UPS Delay: Tiempo en que se apagara la UPS después de apagado el sistema
  • UPS Comport: Puerto COM donde esta conectado el cable RS-232 de la UPS
  • Turn Off UPS?: Se apagara la UPS después de cierre del sistema
  • Comunication Mode: Tipo de comunicación con la UPS, en nuestro caso [0]
El resto de los parámetros no son aplicables a este escenario. Salvamos el fichero.

Editamos el fichero /etc/upsilon/shutdown.ini


El mismo contiene una sola línea y es el comando que se ejecutara para el apagado del sistema al cual esta conectada la UPS, vamos a cambiar la única línea que contiene (/sbin/halt) por /sbin/shutdown –h  –P now, esto se ejecutará después de transcurrido el tiempo configurado en AC Fail Delay



Editamos el fichero /etc/upsilon/preshut.bat

Este fichero contiene los comandos que se ejecutaran después de transcurrido el tiempo configurado en AC Fail Delay y antes del comando escrito en /etc/upsilon/shutdown.ini.


Aquí vamos a escribir los comandos que apagaran tanto los servers Linux como los server Windows.
  
Para apagar los server Linux haremos uso del paquete sshpass que nos permite enviar a una pc Linux en una sola línea y no interactivamente, usuario, contraseña y comando a ejecutar remotamente, por supuesto usuario debe tener derechos de apagar el sistema.

Instalamos sshpass
# aptitude install sshpass 

Para apagar los servidores Windows necesitamos tener instalado el paquete samba.

Instalamos samba
# aptitude install samba 

El aspecto del fichero /etc/upsilon/preshut.bat quedaría más o menos asi:




En la segunda y tercera línea apagamos los servers Linux y Windows respectivamente.

Es importante previamente ejecutar estos comandos interactivamente, ssh debe guardar en cache las llaves de seguridad de la conexion.

Esta solución fue probada para los siguientes modelos de UPS



Marca
Modelo
Capacidad
Interface
KEHUA TECH
KR1000-J
1000 VA,700 W
RS-232
ABLEREX
MSRT-PRO 2000
2000 VA, 1400 W
RS-232