Soy un principiante con Puppet y me gustaría saber si estoy en el camino correcto para implementar aplicaciones con Puppet.
Las aplicaciones están en un archivo tar.gz que contiene un archivo con el número de versión. Entonces, hago esto para implementar (voy al servidor y hago un reinicio del cliente para recoger el nuevo tarball):
nodes.pp
node 'server1.domain.com' inherits basenode {
apps { apps:
version => 56,
apps_name => "apps_tarball.tgz",
}
init.pp (modules)
exec {"apps_wget":
command => "/usr/bin/wget http://web_server/${version}-${apps_name} -O /tmp/${container_zip_name}",
unless => "test -f /tmp/${version}-${apps_name}",
require => [ Package["wget"] ],
}
exec {"apps_unzip":
cwd => "/usr/local/apps/path",
command => "/usr/bin/unzip /tmp/${version}-${apps_name}",
unless => "test -f /usr/local/apps/path/apps-version-${version}",
require => [ Package["unzip"], Exec["container_wget"] ],
}
Pero, cuando quiero actualizar, no sé decir Puppet para eliminar el directorio anterior. Por ejemplo, si quiero actualizar la versión 56 a 57: debo eliminar el directorio de la versión 56.
Escuché sobre Capristrano y parece mejor usar Puppet para administrar paquetes, configurar archivos y usar Capristrano para implementar aplicaciones, ¿no es así?
Gracias.