Sono un principiante con Puppet e vorrei sapere se sono sulla strada giusta per distribuire applicazioni con Puppet.
Le applciazioni sono in un file tar.gz che contiene un file con il numero di versione. Quindi, faccio questo per distribuire (vado sul server e faccio un riavvio del client per raccogliere il nuovo 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"] ],
}
Ma, quando voglio aggiornare, non so dire Puppet per cancellare la vecchia directory? Ad esempio, se voglio aggiornare la versione da 56 a 57: devo eliminare la directory della versione da 56.
Ho sentito parlare di Capristrano e sembra che sia meglio usare Puppet per gestire pacchetti, configurare file e usare Capristrano per distribuire app, non è vero?
Grazie.