Puppet: Tarea para mantener actualizados los paquetes | Algo de Linux

miércoles, 5 de diciembre de 2012

Puppet: Tarea para mantener actualizados los paquetes

Hoy os voy a contar un pequeño "truquillo" (por decirlo de algún modo) que utilizo para mantener actualizados los paquetes de los servidores de terminales, portátiles, workstation y el sistema de los clientes ligeros mediante puppet.

A modo de ejemplo, vamos a ver el módulo apt-upgrade que tengo creado:

# tree /etc/puppet/modules/apt-upgrade
/etc/puppet/modules/apt-upgrade
|-- files
|   `-- init_upgrade
`-- manifests
    `-- init.pp

El archivo init_upgrade es tan sólo un archivo vacío o que puede contener cualquier cosa. En cualquier caso, no importa el contenido porque tan sólo va actuar como testigo para realizar el apt-get upgrade del cliente puppet cuando el archivo cambie.  

En cuanto al archivo init.pp, contiene la definción de la tarea:

class apt-upgrade {
   file {"/etc/init_upgrade":
      source => "puppet:///apt-upgrade/init_upgrade"
   }

   exec { "/usr/bin/apt-get update && /usr/bin/apt-get -y upgrade":
      refreshonly => true,
      subscribe => File["/etc/init_upgrade"],
      timeout => 3600 
   }
}

Como podéis ver el apt-get update && apt-get -y upgrade se va a realizar tan sólo cuando cambie el archivo /etc/init_upgrade.

Con esta tarea puppet tan sencilla, forzaremos una actualización de paquetes en los clientes puppet cuando queramos, con tan sólo modificar el archivo init_upgrade en el servidor puppet.

Del mismo modo, podemos tener una tarea que actualice los paquetes en el chroot de los terminales ligeros. 

Dejo a continuación ambas tareas para que podáis descargarlas:
Dejo ya de paso un par de tareas para hacer un apt-get -y autoremove en los equipos:
Y en el chroot de los terminales ligeros:
Estas dos últimas utilizadlas con cuidado.