Jestem początkującym w Puppet i chciałbym wiedzieć, czy jestem na dobrej drodze do wdrażania aplikacji w Puppet.
Aplikacje znajdują się w pliku tar.gz, który zawiera plik o numerze wersji. Robię to, aby wdrożyć (wchodzę na serwer i uruchamiam ponownie klienta, aby pobrać nowy plik tar):
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"] ],
}
Ale kiedy chcę zaktualizować, nie wiem, jak powiedzieć Puppet, aby usunąć stary katalog? Na przykład, jeśli chcę zaktualizować wersję 56 do 57: muszę usunąć katalog wersji 56.
Słyszałem o Capristrano i wydaje się, że lepiej jest używać Puppet do zarządzania pakietami, plików konfiguracyjnych i używania Capristrano do wdrażania aplikacji, prawda?
Dzięki.