Volver atras archivo modificado por Puppet con Puppet Filebucket

En caso de haber cometido un error en algún template o archivo modificado por puppet es posible volver atrás gracias a que por defecto puppet hace un backup de los archivos antes de modificarlos, para restaurar un backup la sintaxis del comando a ejecutar en el equipo cliente es la siguiente:

puppet filebucket restore -b /directoriobucket /ruta/archivo MD5arestaurar

Por defecto en entornos RHEL/CentOS el directorio es /var/lib/puppet/clientbucket/

Ej:

En la maquina cliente:

puppet filebucket restore -b /var/lib/puppet/clientbucket/ /etc/passwd 379aa0669894ff4150ec2dad28622216

Un Ejemplo practico:

Tenemos un archivo de texto llamado archivo-test

[root@nodo ~]# cat /root/archivo-test.txt
Esto es una prueba de rollback

Luego al ejecutar el agente puppet, el mismo modifica dicho archivo

[root@nodo ~]# puppet agent -t
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Caching catalog for nodo.infratic.com
Info: Applying configuration version ‘1416421872’
Notice: /Stage[main]/Basico/File[/root/archivo-test.txt]/content:
— /root/archivo-test.txt 2014-11-19 15:40:49.248857861 -0300
+++ /tmp/puppet-file20141119-7388-tkwcex-0 2014-11-19 15:41:04.858857840 -0300
@@ -1 +1 @@
-Esto es una prueba de rollback
+Esto es una prueba de rollback “Esto no deberia estar despues”
 
Info: Computing checksum on file /root/archivo-test.txt
Info: FileBucket got a duplicate file {md5}379aa0669894ff4150ec2dad28622216
Info: /Stage[main]/Basico/File[/root/archivo-test.txt]: Filebucketed /root/archivo-test.txt to puppet with sum 379aa0669894ff4150ec2dad28622216
Notice: /Stage[main]/Basico/File[/root/archivo-test.txt]/content: content changed ‘{md5}379aa0669894ff4150ec2dad28622216’ to ‘{md5}3de659e5dc355b14ec5cd0606b2baef8’
Notice: Finished catalog run in 0.79 seconds

Al finalizar la ejecucion el agente nos notifica que modifico el contenido de nuestro archivo y nos muesta el MD5sum de la version anterior y de la version actual del archivo, es el MD5sum de la version anterior (lo que esta en negritas)el que debemos guardar.

Notice:/Stage[main]/Basico/File[/root/archivo-test.txt]/content: content changed ‘{md5}379aa0669894ff4150ec2dad28622216’ to ‘{md5}3de659e5dc355b14ec5cd0606b2baef8’

Verificamos de que realmente se modifico nuestro archivo

[root@nodo ~]# cat /root/archivo-test.txt
Esto es una prueba de rollback “Esto no deberia estar despues”

Procedemos a volver a la version anterior.

[root@nodo ~]# puppet filebucket restore -b /var/lib/puppet/clientbucket/ /root/archivo-test.txt 379aa0669894ff4150ec2dad28622216

Finalmente verificamos que volvimos atras los cambios hechos por Puppet

[root@nodo ~]# cat /root/archivo-test.txt
Esto es una prueba de rollback

Dicho MD5sum de la versiones anteriores de nuestros archivos modificados los podemos sacar de los logs del agente puppet en las maquinas clientes o en caso de tener herramientas como Foreman simplemente verificamos los reportes de la maquina cliente

Deja un comentario