これで、アプリケーションをデプロイするための基本構造が作成されました。 次に、実際の展開プロセスに移ります。 まず、いくつかの設定を変更してから、アプリをデプロイします。

Deploy.rb

この段階で、deploy.rbファイルは次のように表示されます。

set :application, "domain.com"
set :user, "username"
set :repository,  "svn+MyTestProject1ssh://12.34.56.789/home/username/repository/MyTestProject1"

# If you aren't deploying to /u/apps/#{application} on the target
# servers (which is the default), you can specify the actual location
# via the :deploy_to variable:
# set :deploy_to, "/var/www/#{application}"

set :port, 30000

set :deploy_to, "/home/demoDir/public_html/#{application}"

# If you aren't using Subversion to manage your source code, specify
# your SCM below:
# set :scm, :subversion

role :app, application
role :web, application
role :db, application , :primary => true

次に、展開プロセスを調べて、展開に必要なものを定義します。

Subversion

Subversionは、ローカルマシンにすでにインストールおよび構成されている必要があります。 デフォルトのデプロイメントで作業している場合、CapistranoはDropletでコマンドを実行し、リポジトリから最新バージョンを探します。 ただし、このシナリオでは、リポジトリにアクセスするようにドロップレットが設定されていません。 これは、リポジトリにアクセスするようにドロップレットを設定した場合、パスワードなしでドロップレットにアクセスするには、ドロップレットに秘密鍵を配置する必要があるためです。 これはセキュリティの問題につながる可能性があるため、ワークステーションがリポジトリにアクセスすることを許可しました。

これは、ワークフローが次のようになることを意味します

  1. 最新バージョンはリモートリポジトリからチェックされます
  2. それからそれは圧縮されます
  3. 次に、SSHはそれをさらにDropletに送信します
  4. 最後に解凍が行われます

展開にはさらに数秒かかりますが、これによりセキュリティレベルが向上します。

deploy.rbファイルに次の行を追加することで、このデプロイメント戦略を使用するようにCapistranoを簡単にセットアップできます。

 set :deploy_via, :copy

雑種ユーザー

次に、mongrelインスタンスを開始するユーザーを設定します。 これを行わないと、スクリプトは失敗します。 以前に定義したのと同じユーザーを使用します。

set :runner, user

deploy.rb

deploy.rbファイルにいくつかの変更を加えたため、次のようになります。

set :application, "domain.com"
set :user, "demo"
set :repository,  "svn+MyTestProject1ssh://12.34.56.789/home/usernamer/repository/MyTestProject1"

# If you aren't deploying to /u/apps/#{application} on the target
# servers (which is the default), you can specify the actual location
# via the :deploy_to variable:
# set :deploy_to, "/var/www/#{application}"

set :port, 30000

set :deploy_to, "/home/username/public_html/#{application}"

# If you aren't using Subversion to manage your source code, specify
# your SCM below:
# set :scm, :subversion

role :app, application
role :web, application
role :db, application , :primary => true

set :deploy_via, :copy

set :runner, user

展開の初期段階

これまで、アプリをデプロイするためにすべてが行われてきました。 ただし、残っていることが1つあります。それは、最初の展開時に雑種がどのように起動するかを知らせることです。 これは、scriptsフォルダーにあるspinというファイルを使用して実行できます。 ワークステーションで作成します。

 touch script/spin

このファイルには、雑種を制御するためにCapistranoによって使用されるコマンドが含まれます

次に、そのプロパティをSubversionに設定して、適切な権限があり、正常に実行できるようにします。

 svn propset svn:executable on script/spin

今のところ、雑種の使用法に関連するファイルには1行だけを配置します。

/home/username/public_html/domain.com/current/script/process/spawner -p 8000 -i 2 -e production

専念:

次のコマンドを実行して、サブバージョンに追加する必要のあるファイルを確認し、続いてそれらを追加します。

 svn status

スピンファイルも追加できます

 svn add script/spin

最後に、Subversionリポジトリへの変更をコミットします。

svn commit -m "added script/spin"

これで、アプリケーションをデプロイして提供する必要がある段階に到達しました。 ドメインをメインで利用できるようにするには、vhostを設定する必要があります。これは、デプロイする必要のあるアプリケーションに対して特に機能します。

最初の展開

次のコマンドは、アプリを初めてデプロイします

cap deploy:cold

ターミナルで多くの情報がスクロールしているのがわかります。 すべてが完了すると、Capistranoが期待したすべてのことを実行したことがわかります。

  1. CapistranoはSubversionから最新のコードをチェックしました
  2. コードを一時ファイルに圧縮しました
  3. コードがアップロードされました
  4. コードは圧縮されていません
  5. 次に、コードをコピーしてシンボリックリンクなどを作成しました
  6. 最後に、スピンファイルで定義された2つの雑種インスタンスを開始しました

概要:

アプリの仮想ホストを構成するプロセスは、少しイライラするように思われるかもしれません。 デフォルトでは、CapistranoはWebサーバーをインストールおよび構成するためのものではありません。 むしろ、既存のセットアップを取得し、それを使用して、単純なコマンドを使用してアプリをデプロイおよび提供することができます。

EtelSverdlov著