Sincronizar clientes puppet de forma periódica mediante cron en los IES | Algo de Linux

domingo, 30 de abril de 2017

Sincronizar clientes puppet de forma periódica mediante cron en los IES

En nuestros centros decidieron que era conveniente ejecutar puppet solamente una vez en cada arranque del cliente, siempre y cuando  haya transcurrido un tiempo mínimo entre sincronizaciones definido por la variable INTERVAL en el fichero de configuración /usr/share/linex-ubuntu-puppet/sincpuppet.default

Esta configuración me parece adecuada para máquinas que no se encuentran conectadas permanentemente a la red, como por ejemplo, portátiles cuyo acceso es vía wifi. Ahora bien, en mi opinión, en máquinas conectadas a la red mediante cable, debería ejecutarse puppet de forma periódica. Ésto es algo muy sencillo de realizar con tan sólo definir un recurso cron que programe una tarea cron en dichas máquinas:
cron { 'puppet-cron':
    ensure => present,
    command => 'if [ $(pgrep -c "^puppet$") -eq 0 ]; then /usr/sbin/sinc_puppet -f;fi',
    user => 'root',
    hour => "*/$puppet_interval",
    minute => '0',
}
Como podéis ver, defino una tarea cron que se ejecuta como root e inicia el script /usr/sbin/sinc_puppet si no está corriendo puppet en el intervalo definido por la variable INTERVAL en el fichero de configuración /usr/share/linex-ubuntu-puppet/sincpuppet.default

Es importante destacar que puppet es capaz de obtener el valor de la variable INTERVAL almacenado en el fichero de configuración /usr/share/linex-ubuntu-puppet/sincpuppet.default del fact puppet_inteval creado por el fichero ruby readsincpuppetconfig.rb que convierte en facts los valores definidos en este fichero de configuración. Lo que significa que es necesario haber distribuido previamente el fichero readsincpuppetconfig.rb a vuestros clientes (ver el siguiente post: https://enavas.blogspot.com.es/2017/04/convertir-en-facts-los-valores.html).  

Podríamos establecer el intervalo horario de forma fija en el recurso cron, pero al hacerlo de este modo, siempre que cambiemos el valor INTERVAL, en el fichero de configuración /usr/share/linex-ubuntu-puppet/sincpuppet.default se modificará automáticamente en el recurso para el valor de periodicidad coincida.
Publicado por primera vez en http://enavas.blogspot.com.es

No hay comentarios: