Experiencias en la administración de sistemas con Software Libre

Este es el título, aunque no el orginial que más bien era Experiencias del Software Libre en las empresas TIC, de la charla que dí el pasado Viernes en el curso de Arquitectura de servidores con Software Libre que está realizando LibreSoft y la Universidad Rey Juan Carlos en el centro Madrid On Rails y en el que Andago participa cómo colaborador. En un principio pensé que no podría dar la charla al estar en Reino Unido pero al final conseguimos cuadrar las fechas con los días que ibamos a estar por España arreglando papeles. El curso que ha montado la gente de LibreSoft me parece superinteresante, de hecho tuvimos suerte de pillar una plaza para uno de los compañeros del departamento de IT, y es el tipo de formación del que siempre me he quejado que no ofrezca la Universidad cómo parte de su temario habitual. Esperemos que se les reconozca el éxito y puedan repetirlo en siguientes ediciones.

El caso es que cuando me puse a pensar sobre qué podía contar sobre el tema me llegaron muchísimas ideas de golpe y no sabía muy bien cuales serían más interesantes y cuales descartar. Entre ellas había muchísimas experiencias e historietas de distinto ambito, desde cuando empezaba a utilizar mis primeras distribuciones de Linux en casa, las cosas aprendidas en la Universidad y en LinuxAlbacete, cómo montamos la infraestructura de un pequeño ISP en mi primer trabajo y luego todos los proyectos, metodologías, infraestructuras y lecciones que he ido adquiriendo durante los últimos años en mis distintos puestos dentro de Andago. Así que al final intenté incluir un poquito de cada cosa con la idea de dar muchas ideas y conceptos, sin profundizar en el cómo (HOWTO), de forma que sirvieran de puntero para que la gente del curso, en caso de que le resultaran interesantes o de utilidad, pudieran investigar un poco más.

A continuación os dejo las transparencias por si os interesa echar un vistazo:

La audiencia era gente con experiencia en la administración de sistemas así que intenté profundizar en los temas menos comunes o con los que pudieran estar menos familiarizados. Finalmente me pasé un cuarto de hora de la hora y media que tenía asignada, cosa que ya me estaba temiendo cuando terminé de preparar la charla, pero espero no haber aburrido demasiado a nadie. Yo cómo siempre disfruté cómo un enano contando cosas e intentando contestar las preguntas que me fueron hiciendo.

También había pensado en incluir un resumen de todo lo que conté en la charla en este post, pero pensándolo mejor voy a ver si saco tiempo y hago una serie de posts sobre ello porque hay demasiada chicha para un sólo día.

Primeras impresiones de Google TV

Hace unos días recibimos en Andago, directo desde Miami, una unidad de Logitech Revue, una de los primeros dispositivos que incorpora Google TV, la implementación de Android para televisiones de Google. Hace tiempo que quería ver cómo sería la plataforma y nos pusimos rápidamente a probar cómo será la interacción con la televisión en los próximos años.

Los primeros pasos son la configuración de nuestra cuenta de Google y la configuración de los dispositivos a los que vamos a conectar nuestro equipo, como son la tele y nuestro receptor de TDT o vídeo, eso sí, vía HDMI.

También adquirimos la cámara por separado y estuvimos probando la videoconferencia:

La interacción con el dispositivo es a través de un teclado inalambrico y el interfaz me recordó mucho al que disponemos en la PS3 pero las posibilidades con el concepto de plataforma abierta de Android le darán muchas vueltas en poco tiempo, ya que aunque por ahora no disponemos de Market, este se lanzará el próximo año y con la ventaja de que ya hay bastante gente desarrollando para esta plataforma. Las primeras sensaciones son muy buenas y las posibilidades infinitas.

Gestionando servidores con Puppet

Aquí os dejo las transparencias de la charla «Gestionando servidores con Puppet» que impartí en los cursos del GUL de la Universidad Carlos III de Madrid el pasado 09 de Noviembre:

Las transparencias se liberan cómo Creative Commons Reconocimiento 2.5 de España respetando la licencia de las imágenes utilizadas cómo fondo, podéis ver un listado de los autores y la licencia de sus obras al final de las transparencias.

La charla se dividió principalmente en 3 partes: describir el problema que encaramos cuando intentamos administrar el creciente número de servidores que requiere cualquier entidad que consuma servicios de IT, algunas de las posibles soluciones que podemos encontrar así cómo qué características debe tener una solución a este problema y por último cómo Puppet puede ser esta solución y una pequeña introducción a cómo funciona.

Como siempre el auditorio estuvo bastante participativo y las preguntas hicieron más amena la exposición. Como siempre la parte de la demo siempre es la más complicada, de nuevo el bendito Android y la conexión 3G me facilitaron las cosas, pero sirvió para hacer una demostración de los conceptos mostrados en la parte teórica. Muchas gracias a todos los que os acercasteis a la charla y gracias por los comentarios positivos sobre la misma que hicisteis en el blog, así da gusto prepararse cualquier tema.

Hackeando luces en Callao

Hace unas semanas cuando paseabamos por la Gran Vía de Madrid a la altura de la plaza de Callao vimos un montón de luces de colores que salían por las ventanas de una fachada y nos acercamos a ver que era. Nos encontramos con una chica con su ordenador que controlaba cómo iban apareciendo las luces, me pareció muy curioso y le tomé un vídeo. Luego en casa Lili y yo nos animamos a añadirle una banda sonora y a subirlo a YouTube, a ver qué os parece:

Nunca supimos cuál era el motivo exacto del evento de luces pero ahora en esa misma fachada tienen montada una publicidad con grandes pantallas en las ventanas de una conocida marca de ropa por lo que suponemos que o era una prueba o algún tipo de inauguración del local.iconografia

El tema de controlar las luces de un edificio de forma coordinada, cómo si fueran pixeles, a través de un ordenador es un tema recurrente en la iconografia asociada a los hackers. Hay algunos videos impresionantes en youtube en los que se puede ver cómo juegan al space invaders o al snake usando esta técnica sobre la fachada de los edificios.

Nunca había hecho nada de edición de vídeo y quería probar a hacer algo sencillito cómo esto, añadir una pista de audio a un vídeo o algún efectillo, y me recomendaron que usara Kdenlive. Tras trastear un rato con la interfaz resultó tan sencillo cómo crear un proyecto nuevo con 3 pistas: una de vídeo y audio para cargar el vídeo que teníamos grabado y una de audio adicional para la canción que queremos mezclar y silenciar la pista de audio original del video, salvando el resultado en un formato de vídeo que prefieras.

Para el audio fuimos directamente a Jamendo en busca de alguna canción chula con licencia Creative Commons y nos quedamos con Square 1 de Jemex (CC Attribution-ShareAlike 3.0 Unported) que nos pareció muy adecuada, podéis oir el album completo a continuación:

Rescatando una instancia con EBS en Amazon

Este domingo, tras una increible fiesta mexicana la noche anterior, se me ocurre echar un vistazo al mail y me encuentro con un correo de Amazon indicándome que tienen problemas con el servidor anfitrión que alberga una de mis instancias de servidores virtuales, por cierto la que conseguí de forma gratuita.

We have noticed that one or more of your instances are running on a host degraded due to hardware failure.

i-55624c22

The host needs to undergo maintenance and will be taken down at 12:00 GMT on 2010-11-22. Your instances will be terminated at this point.

The risk of your instances failing is increased at this point. We cannot determine the health of any applications running on the instances. We recommend that you launch replacement instances and start migrating to them.

Feel free to terminate the instances with the ec2-terminate-instance API when you are done with them.

Sincerely,
The Amazon EC2 Team

El correo me dice que mi instancia está funcionando en un host degradado debido a un problema de hardware y que mi instancia será terminada en una operación de mantenimiento esta misma noche… al principio ni siquiera me lo podía creer ¿dónde quedó lo de la ubicuidad de la nube y el abstraerse de los problemas físicos? Dado que la instancia dispone de un almacenamiento persistente EBS, no podrían simplemente migrarla en vivo a otro servidor y santas pascuas. ¿Tendrá algo que ver con que se trata de una micro instancia, que está paravirtualizada o a que estemos en el pool de servicio gratuito? Igual han dedicado todos los servidores a punto de romperse a esta campaña de marketing… quién sabe.

Anteriormente cuando no disponíamos de imágenes con el almacenamiento directamente sobre EBS si una instancia era terminada todos los datos de la instancia que no salvaras explicitamente en un bloque EBS especialmente montado para ese propósito eran eliminados, ahora cuando terminas una instancia con EBS simplemente el EBS se queda almacenado para que lo anexes a otra instancia o para que lo borres si ya no vas a hacer uso de él. Así que bastaría con esperar a que pararan la imagen y levantar una nueva con ese EBS, pero al ir a conectarme comprobé que la instancia ya ni si quiera estaba en funcionamiento y no podía acceder a ella por web o por ssh, así que me lanzé ¡AL RESCATE!

El primer paso era parar la instancia que estaba fallando para poder liberar el EBS, pero sorpresa… la instancia no se para por mucho que se lo pidas, supongo que debido a los temibles problemas de hardware. Tras esperar veinte minutos decidí buscar un plan alternativo. Y aquí es dónde sacamos provecho de la potencia de los snapshots, así que simplemente hacemos un snapshot, es decir una copia, de nuestro EBS y creamos un nuevo EBS a partir del snapshot con lo que tendremos una copia exacta de nuestro almacenamiento disponible.

El siguiente paso es arrancar una instancia y asignarle el nuevo EBS que hemos sacado del snapshot. Me parecía recordar que podías hacer eso en un sólo paso pero a través del API y la línea de comando pero no encontré forma de hacerlo a través de la consola web así que hubo que hacerlo en varios pasos. Arrancamos la nueva instancia con un EBS por defecto, luego la paramos, desligamos el EBS de la instancia y lo borramos para a continuación enlazar el EBS que sacamos del snapshot con la instancia en la ubicación /dev/sda1 y ya estamos listos para arrancar una instancia clonada desde la original que estaba fallando.

Por otro lado, es posible que tengas que hacer alguna adaptación interna de tu servidor ya que tu dirección ip pública y privada en Amazon habrán cambiado, en mi caso a este nivel tuve que cambiar el /etc/hosts del servidor. Si dispones de una ip elástica para ofrecer los servicios te bastará con cambiar la instancia a la que apunta esta a la nueva instancia que hemos creado y tu servicio debería volver a la vida y responder de forma correcta a los dominios que la apunten. Cómo yo no dispongo a día de hoy de ip elástica, no entraba en el pack gratuito de Amazon, estaba usando la ip pública de Amazon cómo entrada a mis servicios y alguno de ellos cómo wordpress dependen de ella me tocó arreglarlos en la base de datos:

update wp_options set option_value=»http://minuevaippublicaamazon/miwordpress» where option_name=»stieurl»;
update wp_options set option_value=»http://minuevaippublicaamazon/miwordpress» where option_name=»home»;

La verdad es que se destapan dos temas igualmente de importantes respecto al servicio de Amazon: la fiabilidad de la nube y la felxibilidad de la que nos provee. Cada uno que saque sus conclusiones y vea hacia dónde se inclina la balanza.

Sorteo en el departamento de IT

Con la escusa de que habíamos acumulado algo de merchandising de los distintos eventos en los que hemos participado, decidimos hacer un pequeño sorteo dentro del departamento de IT para ver quién se quedaba cada cosa. Cómo no, el sorteo no podía ser por los medios tradicionales, lease papelitos o piedra-papel-tijera, así que me aventuré a tirar unas líneas de python que resolvieran el problema de forma sencilla, aunque como veréis luego decidimos complicarlo un pelín más. El sorteo lo proyectamos en la tele que tenemos para la monitorización justo al lado del departamento:

La primera versión del código era realmente sencilla y muestra lo fácil que es hacer algo con python, simplemente declara un array de personas y otro de regalos, recorre los regalos y va eligiendo una persona de forma aleatoria como ganador de cada regalo y eliminando esa persona del array de personas:

sorteo-simple.py (Pincha sobre el enlace para ver o descargar el código)

Pero así quedaba un poco simplón por lo que añadí alguna opción más para hacerlo más interesante. La idea es que había gente que sólo estaba interesada en algunos regalos y tenía su orden de preferencia, así que modifiqué el código para que las tuviera en cuenta en caso de que te tocara un regalo a modo de Wish List:

sorteo-wish-list.py (Pincha sobre el enlace para ver o descargar el código)

Y por supuesto el código fue enviado a todos los participantes para que lo auditaran antes de su ejecución con el consiguiente debate de cómo se podría hacer mejor… además en el correo me colé y puse para vuestra audición y alguno quería ponerlo con el festival. Y claro, así no hay forma de hacer trampa, con lo que finalmente no me tocó ningún regalo cómo podéis ver si pincháis sobre la imagen de la tele, pero al menos me queda esta entrada del blog cómo recuerdo.

Novedades en RHEL 6

En el post anterior comentaba las primeras impresiones de la instalación de RHEL 6 y os prometía ampliar algunas de las novedades que trae esta nueva versión después de la presentación que nos realizaron en el evento de partners de Red Hat.

Cómo la descripción general podéis verla en la web de Red Hat sobre RHEL os dejo las notas que tomé porque me sorprendieron o interesaron durante la presentación:

* Mejoras en la eficencia energética: se incorporan comandos como powertop e iotop para medir el consumo de los distintos procesos así cómo tuned, un demonio que va adaptando los recursos del sistema para mejorar la eficiencia

* Con cgroups podremos establecer un límite de recursos sobre un proceso a nivel de número y porcentaje de cpu, memoria, disco y red de forma dinámica.

* Se de usar PAM a SSSD

* Respecto al temido SE-Linux se crean dos nuevos modos: SE-Linux kiosk para aplicar políticas a sesiones en modo kiosko cuando es un terminal de uso público y SE-Linux sandbox para confinar aplicaciones que no tienen todavía definida una política predefinida de SE-Linux

* En cuanto a IPSEC se pasa de usar OpenVPN a OpenSwan

* Dispondremos de System Tap para depurar aplicaciones, pero al parecer también nos va a permitir depurar aplicaciones Java

* KVM entre muchas otras mejoras permite añadir recursos físicos en caliente (CPU, disco, memoria, etc…)

* Yum permite hacer rollback de una instalación !!!

* Simplificado el reporte de errores ante fallos graves que captura el estado de la máquina y permite enviarlo a Red Hat para abrir un bug

* En la parte de Cluster podemos destacar el uso de corosync, unfencing y la interfaz conga rediseñada

También hay grandes cambios en el tema de subscripciones y se complica un poco el tema de saber cuál aplica a tu caso, además de estar fuertemente ligado a la virtualización, pero básicamente tendremos que sacarlo de cruzar los siguientes datos:

* Por cada par de sockets (zocalos utilizados) del servidor anfitrion
* Por el número de guest RHEL máximo que podemos correr en ese anfitrión (1, 4 o ilimitado)
* Por el número de extras que queramos contratar (alta disponibilidad, GFS, XFS, soporte extendido, etc…)

Un caso curioso es el de los clusters de virtualización que tengan migración en vivo, en cuyo caso todos los servidores a los que pueda ir un guest RHEL deben de tener una subscripción activa y el máximo de guests que podremos ejecutar en total en el cluster saldrá de sumar los guests permitidos en cada una de las subscripciones de los nodos anfitriones (1 o 4 o más si apilamos varias subscripciones en ese mismo anfitrión) o será ilimitado en caso de tener subscripciones de tipo ilimitado en todos los nodos del cluster, ya que estas no se pueden mezclar. Un poco lioso.

Lo que sigue estando verde es el tema de usar RHEL en nubes públicas aunque se están avanzando acuerdos con los proveedores de Cloud para que lo ofrezcan por ahora no hay subscripciones que puedas pagar por uso provenientes de la propia Red Hat.

ACTUALIZACIÓN: Se me había olvidado comentar el tema de formación y certificación que también tiene sus novedades. Cómo comentaba por twitter casi me enteré antes de que estaba RHEL 6 en la calle porque me llegó un correo indicando que en breve va a estar obsoleta mi certificación RHCE, la saqué con la versión 4, y que la RHCT, la renové a la versión 5 en el evento de partners de Valencia dónde hacían exámenes gratuitos, se convalida con la nueva certificación RHCSA (Red Hat Certified System Administrator) que será la nueva certificación previa a sacar el RHCE.

Probando la instalación de RHEL 6

Hace un par de días se lanzaba definitivamente la nueva versión de Red Hat Enterprise Linux: RHEL 6. Y aunque ya le había echado un ojo a alguna Release Candidate he sacado un rato para probar la instalación en una máquina virtual de KVM de la edición de servidor de RHEL 6 recien descargada de Red Hat Network. La instalación ha sido muy sencilla y aquí os dejo los pasos y algunos comentarios al respecto.

La instalación arranca con la selección del tipo de acciones que queremos realizar: instalar, instalar en modo texto, recuperar el sistema, arrancar desde el disco local o hacer el test de memoria. Nada nuevo por ahora en el horizonte, seleccionamos la opción de instalar:

A continuación haremos la típica selección de idioma y teclado, en mi caso me gusta mantener el idioma en inglés, sobretodo porque es más fácil rastrear los mensajes de error por internet, y el teclado en castellano:

Seleccionamos nuestra ubicación en Madrid:

Y pasamos a seleccionar el dispositivo de almacenamiento en el que queremos instalar, siendo las opciones básico o especializado, permitiendo esta última opciones muy interesantes para el modo servidor cómo instalar en una cabina de almacenamiento o añadir drivers de nuestro raid hardware:


Continuar leyendo «Probando la instalación de RHEL 6»