Instalar Hubot con nuestro servidor jabber

Hubot es uno de los productos más de moda en el panorama de empresas desarrolladoras de software Americanas. Iniciado y comandado por Github, Hubot permite automatizar muchas tareas a través de tu chat de grupo.

La propia descripción de Hubot en la página web es la siguiente:

GitHub, Inc., wrote the first version of Hubot to automate our company chat room. Hubot knew how to deploy the site, automate a lot of tasks, and be a source of fun in the company. Eventually he grew to become a formidable force in GitHub. But he led a private, messy life. So we rewrote him.
hubot-fast-integration

En este caso Hubot es muy potente. Además es muy fácil extender los módulos existentes. La situación más normal es tenerlo integrado con Hipchat, o campfire. Pero pocas veces se ve integrado con XMPP. En mi empresa usamos bastante el XMPP, por lo que poder integrar esta herramienta es increíble para nosotros, no solo por los script existentes, si no también por lo que podemos generar.

Para instalar hubot lo primero que hay que hacer es tener la versión de node / coffee-script correcta:

# apt-get install build-essential libssl-dev git-core redis-server libexpat1-dev
# cd /usr/src/
# wget http://nodejs.org/dist/v0.8.17/node-v0.8.17.tar.gz
# tar xf node-v0.8.17.tar.gz -C /usr/local/src && cd /usr/local/src/node-v0.8.17
# ./configure && make && make install
# npm install -g coffee-script

Una vez instaladas todas las dependencias solamente hay que hacer el deploy del código base.

# cd /opt
# git clone git://github.com/github/hubot.git && cd hubot
# npm install

Una vez instalado tenemos que comprobar que funciona correctamente, para ello ejecutamos los siguientes comandos:

root@deb-pruebas:/opt/hubot$ ./bin/hubot
Hubot> hubot ping
Hubot> PONG

Ahora tenemos que crear el bot que sera la configuración que se conecte a nuestro servidor:

/opt/hubot/bin/hubot -c ./xmpp

Eso nos crea una carpeta llamada xmpp, ahora tenemos que entrar y editar las dependencias en el package.json para añadir nuestras necesidades:

"dependencies": {
    "hubot": ">=2.3.2",
    "hubot-scripts": ">= 2.1.0",
    "optparse": ">=1.0.3",
    "node-xmpp": ">=0.3.2",
    "hubot-xmpp": ">=0.1.0",
    "htmlparser": ">=1.7.6",
    "soupselect": ">=0.2.0",
    "underscore": ">=1.3.3",
    "underscore.string": ">=2.2.0rc"
}

Ahora solo tenemos que instalar las dependencias con npm install. Una vez instaladas tenemos que configurar las env variables. Donde le decimos a donde/como se tiene que conectar:

export HUBOT_XMPP_USERNAME=hubot@deb-pruebas
export HUBOT_XMPP_PASSWORD=hubot
export HUBOT_XMPP_ROOMS=dev@dev-pruebas

Una vez configurado solo tenemos que ejecutarlo y empezar a jugar en nuestro chat de grupo:

root@deb-pruebas:/$ /opt/hubot/xmpp/bin/hubot --adapter xmpp

En ese momento veremos que se conecta el usuario hubot a la conferencia y ya podemos empezar a usar los comandos en la sala. Para listar todos los comandos y ver que se puede hacer solamente hay que ejecutar hubot help

Si necesitais mas scripts, en este repositorio de github, existen un ciento de ellos totalmente diferentes. Por otra parte aquí os dejo un tutorial para poder escribir vuestros propios plugins

Este es una pequeña demo de lo que se puede hacer.

Yo lo he instalado recientemente, durante esta semana creo que voy a escribir varios módulos. Te imaginas obtener cuantas llamadas existen en vuestra plataforma, o quizás añadir/expulsar a un usuario a la cola solamente con un comando xmpp :-)

asterisk, github, hubot, jabber, productividad, xmpp,