我是Puppet的初学者,我想知道我是否在使用Puppet部署应用程序的正确方法。
这些应用程序位于tar.gz文件中,该文件包含具有版本号的文件。因此,我这样做是为了进行部署(我在服务器上运行,并重新启动客户端以获取新的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"] ],
}
但是,当我要升级时,我不知道说Puppet删除旧目录吗?例如,如果我想将版本56升级到57:我必须删除56的版本目录。
我听说过Capristrano,似乎最好将Puppet用于managinig程序包,配置文件和使用Capristrano来部署应用程序,不是吗?
谢谢。