domingo, diciembre 11, 2011

Automating systems at FSF

El boletín de la FSF de noviembre viene con artículos interesantes. He elegido éste por tener un contenido más técnico y proporcionar información de los entresijos de los servidores de software GNU.

Como no podía ser de otra forma esta tradución se puede copiar, distribuir, modificar y publicar libremente  (aunque se agradecería una mención al autor original del texto en inglés así como del traductor).

Free Software Foundation Bulletin. Issue 19 - November 2011
Título original: Automating systems at FSF 
Autor: Ward Vandewege
Chief Technology Officer (Free Software Foundation)
Traducción: Jorge Muñoz Rodenas.

Los administradores de sistemas de la FSF han hecho un gran esfuerzo para consolidar nuestra infraestructura de servidores durante los pasados 12 meses. Hemos retirado más de una docena de servidores durante el proceso, y ahora alojamos la mayoría de nuestra infraestructura en tres potentes máquinas con varios núcleos en la CPU, abundante RAM y mucho espacio en los discos. Como quizá sepáis, utilizamos Xen para virtualizar nuestros servidores. La virtualización nos permite dividir de forma segura nuestros servidores en muchas máquinas virtuales, cada una dedicada a un número limitado de tareas.
También nos hemos embarcado en un viaje para automatizar las configuraciones de nuestros sistemas en la medida de lo posible. Hemos elegido Puppet, una herramienta de gestión y automatización de la configuración, para que nos ayude en esta tarea.
Una de las ventajas de Puppet es que se puede empezar con pequeñas configuraciones. Una vez que el sistema está bajo el control de Puppet, es fácil expandir la configuración a lo largo del tiempo y, por lo tanto, automatizarlo cada vez más. Empezamos con una configuración muy limitada que definía algunos ajustes comunes a todos nuestros sistemas -por ejemplo, asegurar que la configuración del servicio sshd sea segura. Puppet hace que sea fácil distingur reglas basadas en “hechos” sobre una máquina, como la versión del sistema operativo que está ejecutándose en ese momento, o si el sistema es un servidor físico o un máquina virtual. Cada sistema bajo el control de Puppet obtiene su propio texto de configuración, por lo que es posible hacer cosas específicas para una sóla máquina.
Aquí se indican algunas de las cosas que hacemos ahora con Puppet, en vez de a mano:

  • Instalar los paquetes apropiados, y sus configuraciones estándar de GNU/FSF.
  • Crear y gestionar cuentas de usuarios.
  • Distribuir claves públicas SSH y certificados SSL.
  • Actualizar las configuraciones de las herramientas de Xen en los servidores virtualizados.

Creamos nuevas máquinas virtuales con la herramientas de Xen, que recogen los paquetes de Puppet. Entonces añadimos la nueva máquina virtual a nuestra configuración de Puppet que recoge, a su vez, la configuración por defecto GNU/FSF sin trabajo adicional por nuestra parte. Ahorramos mucho tiempo en configurar las nuevas máquinas, y nuestra mente se queda en paz: todos nuestros sistemas bajo el control de Puppet tienen garantizada nuestra configuración estándar.
Actualmente estamos trabajando para alcanzar el objetivo de generar nuestra propia configuración de los sistemas de monitorización desde Puppet. Una vez concluído la mayoría de este trabajo, debería ser posible para Puppet saber, por ejemplo, www.gnu.org se ejecuta en un servidor web en el puerto 80. Con este conocimiento, Puppet puede ordenar, a nuestros servidores monitorizados, comprobar la disponibilidad de un servicio, todo ello sin la intervención manual de los administradores de sistemas.
Quería concluir este artículo con unas breves palabras de agradecimiento a Bernie Innocenti, que dejó la FSF por otro trabajo en septiembre. Le estamos extremadamente agradecidos por sus contribuciones cono administrador de sistemas de la FSF; él ha sido clave en la consolidación de servidores y en la costosa instalación de Puppet explicada anteriormente.