私は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について聞いたところ、管理パッケージ、構成ファイル、およびCapristranoを使用してアプリをデプロイするためにPuppetを使用する方が良いようですね。
ありがとう。