Hola comunidad!! Dejo aquí esta solución para que la evaluéis:
Al final lo hice con un custom fact distribuido desde el propio módulo. Esto funciona bastante bien.
Veamos la estructura de directorios
# ls /etc/puppet/modules/old_remove/
files lib manifests templates
Editamos un archivito con extensión rb:
# nano /etc/puppet/modules/old_remove/lib/facter/hora.rb
Nos interesa la hora utc:
Facter.add("hora") do
setcode do
Facter::Util::Resolution.exec('/bin/date -u +%r
')
end
end
Ya con esto sólo se distribuye el fact por los /var/lib/puppet/lib/facter/ de los clientes. Con eso ya podremos usar en el init.pp de nuestro módulo la variable:
class old_remove {
if $hora > '06:00:00 AM' and $hora < '06:10:00 AM' {
case $hostname {
/^puppet$/: {
tidy { 'puppet::reports':
path => '/var/lib/puppet/reports',
matches => '*',
age => '1w',
backup => false,
recurse => true,
rmdirs => false,
type => 'mtime',
}
# notify { "debug: tidy command should run now": }
}
}
}
}
¡¡ojo!! Si dejamos rmdir false borrará todo directorio cuya fecha sea anterior, sin preguntar por las fechas de los ficheros interiores. También dejé type en 'mtime' en vez de 'ctime' porque me parecía más fácil controlar su ejecución con un 'ls -la' .
A ver que os parece.