Clase frequency: Esablecer frecuencia de ejecución automática de pkgsync | Algo de Linux

viernes, 20 de mayo de 2016

Clase frequency: Esablecer frecuencia de ejecución automática de pkgsync

Antes de nada, dar las gracias a Ismael por aceptar las sugerencias de mejora que vamos proponiendo y que es bueno aplicar en todos los centros.

Este post es para aclarar las dudas que algunos compañeros me han planteado sobre esta clase. Lo dejo escrito y así sirve para cuando a alguien más le surjan dudas:
  • La clase pkgsync-ies::frequency sirve para establecer una frecuencia de ejecución automática particular para cada tipo de máquina.
  • Se llama así (pkgsync-ies::frequency) porque en mi centro tengo un módulo para distribuir los ficheros de pkgsync .ies a los diferentes tipos de clientes del que forma parte. Este módulo contiene otro módulo más: pkgsync-ies:config. No lo he compartido porque lo retoqué para mostrar ejemplos representativos de diferentes formas de distribuir ficheros a los clientes. Si queréis podría estandarizarlo y compartirlo.
  • Contempla todos los posibles tipos de máquinas a las que el servidor presta servicio mediante expresiones regulares. Ésto significa que podréis establecer una frecuencia diferente para:
    • máquinas cuya variable facter use contenga las palabras portatil, workstation y ltsp.
    • máquinas cuya variable facter tipo contenga las palabras notebook, siatic e infolab.
  • Podéis modificar la frecuencia de ejecución para cada tipo de máquina con tan sólo cambiar el valor de la variable $FREQUENCY en cada caso del bloque que he marcado en color amarillo.
  • Si necesitáis añadir más casos de uso, podéis hacerlo. Se ha cambiado la forma de distribuir los módulos para que podamos adaptar los módulos recibidos en /etc/puppet/modules y nos sigan pasando módulos que no es conveniente modificar en otra ubicación.
class pkgsync-ies::frequency {

    if ($use =~ /portatil/) { $FREQUENCY="weekly" }      
   elsif ($use =~ /workstation/) { $FREQUENCY="daily" }  
   elsif ($use =~ /ltsp/) { $FREQUENCY="daily" }         

   if ($tipo =~ /notebook/) { $FREQUENCY="weekly" }      
   elsif ($tipo =~ /siatic/) { $FREQUENCY="daily" }      
   elsif ($tipo =~ /infolab/) { $FREQUENCY="daily" }     

   case $FREQUENCY {
      "weekly": {
         file { "/etc/cron.weekly/nightly-pkgsync":
            source => "puppet:///modules/pkgsync-ies/nightly-pkgsync",
            owner => root, group => root, mode => 755
         }
         file { "/etc/cron.daily/nightly-pkgsync":
            ensure => absent
         }
         file { "/etc/cron.monthly/nightly-pkgsync":
            ensure => absent
         }
      }
      "monthly": {
         file { "/etc/cron.monthly/nightly-pkgsync":
            source => "puppet:///modules/pkgsync-ies/nightly-pkgsync",
            owner => root, group => root, mode => 755
         }
         file { "/etc/cron.daily/nightly-pkgsync":
            ensure => absent
         }
         file { "/etc/cron.weekly/nightly-pkgsync":
            ensure => absent
         }
      }
      default: {
         file { "/etc/cron.daily/nightly-pkgsync":
            source => "puppet:///modules/pkgsync-ies/nightly-pkgsync",
            owner => root, group => root, mode => 755
         }
         file { "/etc/cron.monthly/nightly-pkgsync":
            ensure => absent
         }
         file { "/etc/cron.weekly/nightly-pkgsync":
            ensure => absent
         }
      } # default="daily"
   } # end case
} # end class
Publicado por primera vez en http://enavas.blogspot.com.es

No hay comentarios: