Slack - Archivos de configuración centralizados
Introducción
Tal y como lo define uno de los autores, slack
es poco más que un envoltorio
sobre el programa rsync
, y está diseñado para distribuir los archivos de
configuración de una red de máquinas desde un repositorio central. Escrito en
lenguaje Perl, su diseño está pensando para aquellos administradores que
no quieren ó no puedan aprender un sistema de configuración centralizada
complejo, al estilo de --puppet-- y --cfengine--, pero que aún así pretenden
imponer cierto orden en sus máquinas.
Dicho repositorio emplea un modelo de herencia para los archivos de
configuración y contempla la existencia de roles en los clientes. También es
posible definir programas que se ejecutan antes y/ó después de la instalación
de configuraciones. Dichos programas pueden ser cualquier cosa que el sistema
sea capaz de ejecutar mediante exec()
.
Slack
sigue un modelo pull en lugar de push, lo que quiere decir que son
los clientes los que transfieren los archivos desde el repositorio central, y
los que ejecutan los programas pre y post instalación, en lugar de ser el
servidor el que conecte con los clientes y les transfiera la configuración
(modo push).
Las ventajas son:
- No es necesario que exista un proceso demonio en el cliente vigilando permanentemente las actualizaciones en el servidor.
- Se puede personalizar y planificar por cada cliente el momento en el que se conecta y se cambia la configuración.
- No es necesario lidiar con los inconvenientes de máquinas cliente apagadas, retiradas ó inactivas, puesto que ningún servicio central lleva nota de quienes ni cuándo se han actualizado.
- Además, y a hilo de esto último, no existen problemas con cortafuegos ni
redes privadas tras la que se escondan los clientes; basta con que el
servidor
slack
sea accesible a través de la red.
Las desventajas son:
- Los cambios importantes y/ó urgentes no tienen una forma sencilla de aplicarse en todos los clientes, dado que son éstos los que inician la conexión.
Repositorio central
El repositorio estará definido por dos aspectos: la conectividad con él y el almacenamiento de los archivos dentro del mismo.
La conectividad se implementa mediante el programa rsync,
que a su vez puede emplear ssh
para asegurar la confidencialidad de las
comunicaciones.
El almacenamiento se construye sobre un repositorio distribuido bajo algo como
git
, no estrictamente necesario aunque muy recomendable.
Configuración de clientes
Enlaces y referencias
- Documentación sobre roles predefinidos.
- Hilo
muy clarificador sobre la filosofía subyacente de
slack
.