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:
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.
0 comentarios:
Publicar un comentario