Debido a la dimensión que fue adquiriendo el parque de servidores de Ceibal y a su diversidad, fue necesaria la utilización de una herramienta que permitiese gestionar de manera automática la configuración de todos los servidores. Alcanzando así, el objetivo de mantener los servidores actualizados tanto en paquetería del sistema operativo instalado como en servicios brindados por Ceibal.

La herramienta seleccionada, se adapta a la diversidad del parque ya que permite definir modelos de configuración a aplicar y grupos de servidores sobre los cuales aplicarlos. Además posee la importante característica de ser escalable, lo que ha permitido irse adaptando al aumento gradual de los equipos instalados en locales Ceibal.

Con esta herramienta se definen promesas de cambios, las cuales son comparadas con el estado actual del servidor e implementadas en caso de que exista alguna diferencia. De esta manera convergen las configuraciones de manera controlada, ya que en caso de no poder implementar alguna modificación, se restauran los archivos originales, evitando la aparición de errores. Operando así, hace que no sea necesario sobreescribir la configuración existente con otra completa donde se correrían más riesgos ya que se pueden presentar errores intermedios que corrompan la configuración del equipo, dejándolo inoperante.

Esta herramienta consta de dos componentes: un servidor centralizado donde están los documentos con las promesas a ejecutar y los host clientes en los servidores que son responsables de bajar los documentos con el total de promesas, interpretarlos y ejecutar únicamente aquellas promesas que son aplicables a él en un orden determinado. La presencia de un servidor centralizado simplifica el seguimiento de los cambios pues se guardan históricos en un punto común y también simplifica la implementación de los mismos ya que se realizan en un único punto para luego impactar en todos los servidores.

El lenguaje con el que se implementan las promesas, es un lenguaje sencillo, intuitivo pero que permite operar sobre sistemas complejos. Algunas de las acciones permitidas son: la copia o la edición de archivos, el cambio de permisos de archivos o carpetas, la instalación de paquetería, la inicialización, detención o reinicio de un servicio y la ejecución de sentencias, entre otras.

La copia de las promesas a los servidores está agendada pero también está la posibilidad de forzar la copia en un determinado momento particular en caso de requerirlo.
La herramienta es OpenSource, se puede encontrar más información en cfengine.