この記事を始める前に、RubyonRailsのほとんどをCapistranoで構成しておく必要があります。 この時点で、Capistranoの構成ファイルを確認し、必要なものを追加する必要があります。

クイックディテール

この記事では、各構成設定とは何か、およびその意味について説明します。 記事は長いですが、すべての構成を正常に実行できるように、すべてのステップが詳細に説明されています。

Deploy.rb

まず、ローカルワークステーションにあるRubyonRailsアプリフォルダーに移動します。

 cd ~/dev/MyTestProject1

deploy.rbファイルを開きます

 nano config/deploy.rb

ファイルは次のようになります。

set :application, "set your application name here"
set :repository,  "set your repository location here"
# 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}"
# If you aren't using Subversion to manage your source code, specify
# your SCM below:
# set :scm, :subversion
role :app, "your app-server here"
role :web, "your web-server here"
role :db,  "your db-server here", :primary => true

‘application’、’username’、および’repository’の変数を設定します

体系的に作業し、ファイルの先頭から最後まで作業を進めていきます。 ファイルの最初の変数は「application」です。 任意のアプリ名を使用できますが、ドメインの名前を使用することをお勧めします。 これにより、vhostなどに使用したプロトコルに準拠した状態に保たれます。

アプリ名は次の行に記入してください

set :application, "domain.com"

次に、ユーザー名を設定します。 これにより、ドロップレットユーザー名の代わりにローカルワークステーションユーザー名を使用することで発生する可能性のある権限の問題を未然に防ぐことができます。

この行を追加します

set :user, "username"

リポジトリには、プロジェクト「MyTestProject1」のチェックアウトに使用した詳細を入力します

set :repository,  "svn+MyTestProject1ssh://12.34.56.789/home/username/repository/MyTestProject1"

SSHポートの設定

SSHポートはデフォルトでは設定されていません。 Capistranoは、SSH経由でドロップレットに接続するためにデフォルトのsshポート22を使用します。 したがって、ドロップレットを設定するときにSSHポートを「22」として定義したことをCapistranoに通知する必要があります。

次の行はSSHポートを定義します。

 set :port, 22

展開パスの設定

次に、展開パスを設定します。 ドロップレットとvhostsを設定する際に、「public_html」フォルダーを使用しました。

展開パスは次のように記述する必要があります。

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

最後に変数「application」が使用されていることに注意してください。 ‘set:application’をdomain.comから別の名前に変更すると、この設定にもその変更が反映されます。

‘app’、’web’、および’db’の変数を設定する

App、web、dbは、この段階で設定する必要がある最後の3つの設定です。 多くのユーザーは、これら3つの変数を同じ場所に向けています。 少し混乱するかもしれません。 ただし、アプリ、ウェブ、データベースが異なる場所を指すようにすることも可能です。 このような場合、この設定により、Capistranoは各変数の場所を知ることができます。

新しい変数’location’を定義できます。 3つの設定は、この変数に割り当てられたURLを指します。

set :location, "domain2.com"
role :app, location
role :web, location
role :db,  location, :primary => true

一方、すべてが単一の液滴で行われている場合は、アプリケーション変数を使用できます。

設定は次のようになります。

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

最終的な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/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

ファイルの内容は単純に見えますが、最初のCapistranoコマンドを入力するときに役立ちます…

Public_html

次に、ドロップレットにログインして、public_htmlフォルダーに移動します。

ssh -p 22 username@123.45.67.890

cd /home/username/public_html

動作する液滴がない場合、液滴は空になります。 ディレクトリが空であるため、出力はありません。

ls

次に、最初のCapistranoコマンドを入力します。

コマンドdeploy:setupを実行する

ローカルワークステーションでこのコマンドを入力します

 cap deploy:setup

簡単なフレーズのように思えるかもしれませんが、多くのことが起こります。 何が起こったかを確認するために、ドロップレットのpublic_htmlフォルダーを調べます。

ls
...
domain.com

ディレクトリ構造

キャピストラーノは驚異的な働きをしました。 Capistranoのパワーと使いやすさをご覧ください。 ドロップレットにログインし、deploy.rbから設定を取得して、将来の開発に使用するディレクトリ構造を作成しました。 親フォルダー内には、「releases」および「shared」という名前の2つのフォルダーがあります。 「共有」フォルダには、システム情報、ログ、pidなどのサブフォルダが含まれています。

EtelSverdlov著