Sou iniciante no Puppet e gostaria de saber se estou no caminho certo para implantar aplicativos com o Puppet.
Os aplicativos estão em um arquivo tar.gz que contém um arquivo com o número da versão. Então, eu faço isso para implantar (eu vou no servidor e reinicio o cliente para pegar o novo 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"] ],
}
Mas, quando eu quero atualizar, não sei dizer Puppet para excluir o diretório antigo? Por exemplo, se eu quiser atualizar a versão 56 para 57: devo excluir o diretório de versão da 56.
Ouvi falar de Capristrano e parece ser melhor usar o Puppet para gerenciar pacotes, arquivos de configuração e usar o Capristrano para implantar aplicativos, não é?
Obrigado.