Puppet, gestión de configuración centralizada.

Puppet es una herramienta gestión de configuraciones centralizada que nos ayudará en la laboriosa gestión de servidores cuando el número de estos empieza a crecer.
Recientemente ha cambiado de licencia, de GPL a Apache a partir de la versión 2.7.0. Está basado en Ruby, pero las descripciones de configuraciones se escriben en modo declarativo. Existen paquetes construidos que ya vienen en el sistema de paquetería para las principales distribuciones Linux, en nuestro caso usaremos Debian Squeeze y los paquetes a los que tenemos acceso en su repositorio. También tienen soporte para otros sistemas UNIX como Solaris, *BSD o Mac OS X. Y en desarrollo tienen un soporte básico de sistemas Windows. El desarrollo es público desde 2006 y destaca por su estabilidad y facilidad de manejo, aunque como todo este tipo de herramientas, la curva de aprendizaje, no es muy liviana. Entre los principales clientes de la solución enterprise para empresas destacan empresas como Nokia, RackSpace, Zynga, Twitter, Digg, …
En este post, veremos como configurar Puppet en Debian Squeeze y podremos ver dos ejemplos de aplicación de configuraciones.
Sigue leyendo


{lang: 'es'}

Hay que seguir de cerca al proyecto ownCloud

Pon un ownCloud y tendrás un sistema web para compartir ficheros. Bueno, eso era antes, ya se ha publicado la versión 2.0 y ahora es algo más que compartir ficheros. Tienes la posibilidad de escuchar tu música almacenada en el servidor, tener un listado de marcadores web o bookmarks, un calendario y una agenda. Lo tienes en tu servidor y funciona incluso en sharing hostings baratos tipo DreamHost. Con licencia AGPL

Lo que me gusta es su simpleza, si tienes disponible un servidor web con php5, conseguir que funcione es muy fácil. Descomprimir y acceder a la url correcta. Al acceder la primera vez nos pide el nombre del usuario administrador y crea la base de datos en sqlite. Y ya queda listo para usar.
Soporta webdav para poder exportar los contenidos. De esta forma, si el servidor donde lo tenemos desplegando lo permite, podremos disponer de acceso desde un navegador de ficheros, ya sea usando davfs2 para montarlo o accediendo desde gnome o kde. No he conseguido que me funcione correctamente el uso de webdav y nginx, pero es que realmente, el soporte de webdav en nginx está aún muy verde.
En esta base de datos se controlan los usuarios y las quotas de disco de cada uno. También se pueden tener grupos y compartir ficheros entre usuarios, entre grupos o publicarlos mediante un enlace con un hash.

Una vez hemos subido algunos ficheros, nos podemos centrar en la parte del almacenado de ficheros. Se crea un directorio por usuario creado y dentro de este otro directorio files que es donde residen los ficheros subidos. La ventaja es que si subes un fichero sin pasar por la web, este sí que se verá en la web. De este modo, sería fácil incorporarlo a un sistema con homes UNIX desplegados mapeando los usuarios correctamente. Se le puede indicar donde reside la raíz de los datos.
Se pueden tomar usuarios desde un ldap, y también ofrece la posibilidad de servir de fuente de autenticación OpenID, aunque no he visto como hacer el camino inverso, es decir, autenticare en ownCloud mediante un id OpenID externo.
En la versión de desarrollo tienen incorporadas una app de galería de imágenes y otra para editar ficheros de texto plano en el servidor. Por otro lado, Rekonq, el navegador de KDE4, permite sincronizar los bookmarks con ownCloud. Sería interesante que se pudieran sincronizar con Firefox y Chrome.
La creación de aplicaciones no parece muy complicada y además tienen ya planteado un repositorio de aplicaciones en la web del proyecto.
¿Qué cosas faltan para que pueda ser un reemplazo de dropbox y similares? Lógicamente, aún queda mucho trabajo por hacer, entre otras cosas, aplicaciones locales que faciliten la integración con el escritorio, aún así, accediendo a los contenidos mediante webdav/https, nos quitaríamos el problema de muchas redes corporativas donde resulta complicado abrir nuevos puertos y en otros entornos menos hostiles, se podría incorporar acceso ftp/smb/sshfs a las carpetas de usuario, dando así más posibilidades de integración sin llegar a tener aplicaciones.


{lang: 'es'}

Capturas y marcador para firefox: dashboard

Buscando si existía un plugin para capturar zonas de una ventana de firefox y que además incorporase un marcador o algo para resaltar una zona de esa captura, me he encontrado con este plugin: DashBlog.
Permite capturar tanto una imagen, como un vídeo de una página (ideal para efectos js/ajax). Y además, permite escribir, poner flechas o dibujar a mano alzada. Pero es que además de esto, permite publicar esta captura directamente en WordPress, Blogger/Blogspot, Tumblr, aunque esto último no he conseguido que me fucione.
Lo bueno es que te salva de tener que abrir GIMP para remarcar una zona, o incluso recortar una zona de la pantalla sino quieres tener instalado/activo el plugin ScreenGrab.
Puedes ver los resultados en la captura de ejemplo, en la zona inferior derecha.
Una lástima que el plugin aún no funcione para Firefox 3.5
dashboardcapture.png


{lang: 'es'}

Terminales ligeros, la solución para las aulas de formación

Tras llevar bastante tiempo ligado a los servicios web, tanto en el desarrollo como en el despliegue y mantenimiento de esta clase de sistemas, ahora tengo la oportunidad de trabajar en un proyecto mucho más relacionado con Sistemas directamente y el comúnmente llamado “cacharreo”.
Se trata de incorporar a una serie de aulas de formación, un sistema basado en clientes ligeros y servidor, usando para ello Tcos.
El hecho de incorporar este tipo de arquitectura a las aulas es beneficioso por varios motivos:

  • Fácil administración de todos los equipos del aula. Ahora todos los puestos usarán el mismo sistema, que será servidor y procesado por el servidor
  • Ahorro en máquinas. Los clientes ligeros tienen un tiempo de vida muy superior al de un equipo normal. En un aula con equipos normales, hay que renovar equipos cada 3 o 5 años, porque se han quedado obsoletos. En un aula con clientes ligeros. Pasado este tiempo, solo habría que cambiar el servidor si se necesita más rendimiento.
  • Consumo energético. En el caso de usar clientes ligeros, tenemos terminales con consumos desde 5w, y máximo de 20w. El PC de un puesto normal, con estar encendido ya viene a consumir 60-80w como mínimo.
  • Reutilización de equipos viejos. Se pueden usar equipos antiguos con poca ram (a partir de 64MB, o un incluso menos), sin disco duro, ni disquettes. Solo necesitan una tarjeta de red que soporte arranque con PXE o una disquetera para emular el arranque PXE con etherboot
  • Además, si decidimos usar Linux y la alternativa fuese windows, nos ahorramos el precio de licencia por puesto.

Dejo pendiente para otros días analizar alguno de los principales sistemas que tenemos para ofrecer este tipo de servicio, como son LTSP, Tcos, PXEs, …
Sigue leyendo


{lang: 'es'}

Proyectos: API python para tuenti, tuenpy

Últimamente me ha empezado a picar el tema de desarrollo de redes sociales y una de las cosas que más hacen falta en una red social es la capacidad de conexión con otras redes sociales. De ahí que cada una tenga a disposición una API pública, en la mayoría de casos, para poder comunicarse con el resto de redes de su especie. Desde poder buscar amigos de una red social en otra como poder interactuar en los contenidos.
Cuando empiezas a crear una red que encima está muy localizada, ya sea regionalmente o por la temática, el interés máximo es conectar con otras redes de tu entorno. Un claro ejemplo es tuenti en España. Que a base de invitaciones ha logrado una comunidad impresionante. Se podría decir que se han distribuido tan bien las invitaciones como aquellas de Gmail.com antes de que se abriera definitivamente como ahora.
La red social en la que estoy trabajando últimamente, mymem.mobi, está escrita en python y aunque ya tenemos implementadas bastantes conexiones, aún nos faltaba la parte de tuenti. Tras buscar y rebuscar no hemos encontrado nada, así que hemos decidido empezar a realizar un desarrollo no oficial que nos permita conectar nuestras aplicaciones python con tuenti. En este caso se trata de tuenpy.
Lo empezamos con licencia GPLv3 y esperamos tener un fructífero desarrollo del que iremos contando cosas según vayan surgiendo. Otro día hablaremos de mymem que también pinta muy bien.
Sigue leyendo


{lang: 'es'}