Empezamos a tocar un poco de Python, Celery y Rabbit, lo primero de todo, contexto:
Día 2 de Enero de 2014, frio, en el curro no curra ni el tato, pues bien hoy toca mirar documentación y sobretodo con tranquilidad.
Esto ha surgido por la siguiente razón, el otro día estaba pegandome con Django y llegue al punto de necesitar un event pool o un gestor de colas para después con Fabric atacar a varios nodos a la vez, que no se pisen y organizar la información un poco. En vez de el pool de eventos me decante por esta opción por la sencilla razón que soy Sysadmin y esta en mi naturaleza, ademas de que es un tema pendiente que llevo posponiendo varios meses.
Empezamos, el SO, vamos a trabajar sobre una RedHat/CentOS 5.5...direis..why?, por que es el SO que suelo usar en el curro para todo, podría usar una 6 pero me interesa especialmente la 5.5 por que la mayoría de ellos tienen dicha version.

Después pip-python install celery (aseguraos que pip tira de python 2.6 y no de la 2.4 que es la que esta por defecto en el SO), sino os quereis liar, easy_install-2.6 celery y ya.
Vale, con esto ya tenemos Python2.6 y Celery instalado, ahora necesitamos un broker, vamos con RabbitMQ, aquí tuve alguna historia sobre todo por desconocimiento, nunca había instalado una Rabbit y claro.. para que la instalación no este muy anticuada yo he metido la version 2.8.5-1. Para ellos haced lo siguiente, encontrar el RPM es trivial así que no me lio con eso:
yum install rabbitmq-server

Ahora instalamos el repo de Erlang, por que necesitamos minimo la version 13B para levantar la web de administration:
wget -O /etc/yum.repos.d/epel-erlang.repo http://repos.fedorapeople.org/repos/peter/erlang/epel-erlang.repo
yum clean all
yum install erlang
nos instalará 800 millones de rpms (61 a mi xD) y demás, vosotros dadle a si (a no ser que necesitéis alguna version concreta para algún elemento concreto en desarrollo, pero ahi ya no entro). Tras un cafe podemos empezar a trabajar.
Activamos el plugin de administracion:
rabbitmq-plugins enable rabbitmq_management
E iniciamos el servidor de RabbitMQ:
/sbin/service rabbitmq-server start
ahora nos vamos con el navegador a la IP de vuestro servidor y concretamente al puerto 55672, es el mismo que el de Rabbit pero con otro 5 delante, y ale ya tenemos la base para poder trabajar.
Podeis acceder como guest/guest y a partir de ahi gestionar los usuarios como queráis.
Mirad que no tengais IPTABLES levantadas o SELinux por ahi rondando.
En los siguientes post iré entrando mas en código para gestionar los workers de Celery desde python.
Espero que os haya sido util.
Sources:
- How to install erlang: http://pubs.vmware.com/vfabric51/index.jsp?topic=/com.vmware.vfabric.vas.1.0/vas/erlang-install.html
- Management plugin RabbitMQ: http://www.rabbitmq.com/management.html