Logo
You
Code

EXSi poweroff, shutdown con APCUPSD para UPS APC

Autor YouCode - http://www.youcode.com.ar/linux/exsi-poweroff-shutdown-con-apcupsd-269

Como apagar nuestras maquinas virtuales cuando a nuestra UPS le queda poca bateria, hay muchas formas, algunas instalando scripts en EXSi pero esta forma es muy basica y simple, y sobre todo, funciona!

Antes que nada, es necesario realizar la instalacion de APCUPSD, sigan el siguiente enlace :
http://www.youcode.com.ar/linux/apc-apcupsd-instalar-servicio-en-linux-268

Vamos al grano, primero que nada este articulo fue probado sobre un servidor Ubuntu, tambien debo decir que este servidor Ubuntu esta montado sobre un EXSi, o sea, en la misma maquina (hardaware) tengo el Ubuntu + un WindowsXp , y queremos que al quedar poca bateria en la UPS el EXSi haga el shutdown de las maquinas virtuales y luego su propio shutdown.

Entonces, en nuestro Ubuntu esta instalado el servicio APCUPSD y la UPS via USB esta conectada, la idea (dado que hablamos del mismo hardaware) es que ubuntu atienda los mensajes de la ups y luego (segun que sea) realize una accion, porque lo controla ubuntu, bueno, porque instalar esto en el EXSi es demaciado "tedioso" y las cosas deberian ser mas simples.

Una vez instalado el servicio APCUPSD sobre nuestro ubuntu (recuerden que esta virtualizado) solo nos queda hacer un par de cambios simples en el archivo de control del servicio APCUPSD.

Pero antes, vamos a instalar una herramienta por demas conocida que es putty-tools para usar el conocido PLINK con el cual nos loguearemos en EXSi para ejecutar el comando de apagado, esto iniciara el apagado de las maquinas virtual y luego de la maquina (hardware) donde tambien esta el ubuntu!

Para instalar putty-tools:
# apt-get install putty-tools
Ahora, vamos a editar el archivo de configuracion del servicio APCUPSD
# cd /etc/apcupsd
# vim apccontrol
buscamos lo siguiente:
killpower)
        echo "Apccontrol doing: ${APCUPSD} --killpower on UPS ${2}" | ${WALL}
        sleep 10
        ${APCUPSD} --killpower
        echo "Apccontrol has done: ${APCUPSD} --killpower on UPS ${2}" | ${WALL}
    ;;
en rojo, cambiemos el 10 por el 30, este valor es en segundo, lo que hace es enviar a la ups luego de 30 segundo el killpower el cual inicia el proceso de apagado de la ups, pero no desesperen!!!!, la ups a la vez envia al servicio APCUPSD el doshutdown que inicia el apagado del EXSi, luego, la ups se apagara cuando la maquina (hardawe) se apague.

en este archivo tambien nos interesa agregar a plink para que se loguee al EXSi, buscamos lo siguiente:
doshutdown)
        echo "UPS ${2} initiated Shutdown Sequence" | ${WALL}
        ${SHUTDOWN} -h now "apcupsd UPS ${2} initiated shutdown"        
    ;;
y lo dejamos asi:
doshutdown)
        echo "UPS ${2} initiated Shutdown Sequence" | ${WALL}
        #${SHUTDOWN} -h now "apcupsd UPS ${2} initiated shutdown"
        echo "****** Executing ESXi Shutdown Command ******" | ${WALL}
        plink -ssh -2 -pw tu_clave root@192.168.0.4 "/sbin/shutdown.sh && /sbin/poweroff"
    ;;
en rojo les marco la linea a comentar porque esa linea inicia el apagado de nuestro ubuntu y eso aun no lo queremos, aparte lo apagara el EXSi.

Noten a plink , donde indicamos que nos conectamos por ssh usando el protocolo 2 (-2) , indicando nuestra clave (-pw) , luego el usuario y el ip del EXSi y entre comillas indicamos el comando a ejecutar, en este caso esl el shutdown que iniciara el proceso de apagado de las maquinas y luego poweroff para que apague la maquina.

Recuerden que la UPS enviara al servico APCUPSD que tiene poca bateria segun las configuraciones que esten en el archivo de configuracion del servicio APCUPSD.

Espero les sirva y sea util.
?
 
http://www.youcode.com.ar/linux/exsi-poweroff-shutdown-con-apcupsd-269