S3アーカイブデプロイメントアプリを使用して、ビルドプロセスから生成されたZipファイルをデプロイしています。複数のサーバーに展開すると、展開によって生成される絶対パスがサーバーごとに異なることに気付きます。どうやらパスはデプロイ時間を使用しており、各サーバーは異なる秒数でアプリをデプロイできます。
例えば.
Server1: /srv/www/myapp/releases/20141112085530/
Server2: /srv/www/myapp/releases/20141112085520/
Server3: /srv/www/myapp/releases/20141112085515/
アプリには、アプリの絶対パスを必要とするスクリプトがあるため、スクリプトの戻り値はサーバーごとに異なります。非スティッキーセッションELBを使用すると、これは不便になります。
私の現在の解決策は、スクリプトが絶対パスではなく、ビルドごとに生成されたハッシュを必要とすることです。
しかし、S3デプロイメントの各サーバーでデプロイメントの絶対パスを一貫させるようにOpsWorksを構成する最小限の方法があるかどうか疑問に思っています。
アプリの現在のバージョンは、アプリのディレクトリにあるcurrent
シンボリックリンクを介してシンボリックリンクされます。そう srv/www/myapp/current
(現在実行中のアプリのバージョン)にリンクします