Gestión de configuraciones y sofware de equipos en IES mediante puppet y pkgsync | Algo de Linux

sábado, 4 de febrero de 2017

Gestión de configuraciones y sofware de equipos en IES mediante puppet y pkgsync

En los centros educativos de Extremadura, los administradores utilizamos dos herramientas fundamentales para gestionar de forma automatizada las configuraciones y el software de los diferentes equipos del centro: puppet y pkgsync. Digo que son fundamentales porque sin ellas sería difícil administrar un número tan alto de equipos como el que tenemos a nuestro cargo.

Como buen sysadmin, pienso que los equipos están ahí para hacer por mí todo el trabajo que sea posible e invierto mucho tiempo en automatizar tareas y procesos, desarrollando y modificando todo aquello que permita simplificarlo. Es ahí donde el software de código abierto juega un papel fundamental. Y la consecuencia es que nos consideren "makers". Supongo que tienen razón y soy un "maker" porque si necesito algo y no lo tengo, lo hago. Por todo ésto considero que el software libre debería ser tan importante para todos como para mí.

En mi faceta de "maker", he trabajado en varias herramientas que facilitan mi trabajo en el día a día. Y, en mi opinión, creo que sería conveniente instalar las últimas versiones y que todo administrador de cualquiera de nuestros centros dominara:
  • linex-ubuntu-puppet: Es un paquete desarrollado por nuestros compañeros de administracionsi que sirve para configurar una máquina como cliente puppet del servidor del centro. Este paquete contiene un script (sinc_puppet) para sincronizar el cliente sólo en el arranque, que reescribí completamente para que funcionara de un modo más eficiente y solucionara el problema de sincronizar hosts con el mismo nombre utilizando un uuid en lugar del fqdn de la máquina. Además, modifiqué el script sinc_puppet para poder utilizarlo también de forma interactiva con parámetros. Podéis consultar los parámetros ejecutando: sinc_puppet -h. La última versión modificada por mí a día de hoy es linex-ubuntu-puppet_2.15
  • pkgsync: Es una herramienta creada por Steinar H. Gunderson para manener una uniformidad en el software mediante tres listas de paquetes: musthave, mayhave y maynothave. Comencé modificándola para compartir la gestión de paquetes con los compañeros de administracionsi y poco a poco la he ido mejorando y dotándola de mayor funcionalidad. Os recomiendo echar un vistazo al man de la herramienta: man pkgsync. La última versión a día de hoy es: pkgsync_1.37-2.
  • puppetlast: Es una pequeña herramienta que nos sirve para obtener un listado ordenado de máquinas y su última sincronización con el servidor puppet. Estaba pensada para utilizar el hostname de la máquina. Aprovechando que tenía que modificarla para utilizar el uuid, la he reescrito en bash. Podéis ver el código y descargarla desde mi GitHub.
  • cleanpuppetnodes: Es otra pequeña herramienta escrita en bash que nos permite hacer limpieza de nodos, certificados y facts en el puppetmaster. Por defecto, elimina información de nodos cuya sincronización se realizó hace más de 60 días, aunque podemos indicarle como parámetro el número días. Podéis ver el código y descargarla desde mi GitHub.
A tener en cuenta:
  • linex-ubuntu-puppet y pkgsync son herramientas para los clientes puppet.
  • puppetlast y cleanpuppetnodes son herramientas para instalar en el servidor puppet.
Además de todo ésto, considero fundamental instalar una serie de herramientas relacionadas:
  • Un mirror local de paquetes, por ejemplo con apt-mirror.
  • Un repositorio local de paquetes, con reprepro.
  • dsh y tmux-cssh para ejecutar comandos de forma remota.
Publicado por primera vez en http://enavas.blogspot.com.es

No hay comentarios: