(ページの作成:「symfonyプロジェクトのデプロイツールCapifonyを紹介します。 はじめの手順はちょっとメンドウだし、仰々しいかもしれませんが...」)
 
 
(同じ利用者による、間の1版が非表示)
1行目: 1行目:
symfonyプロジェクトのデプロイツールCapifonyを紹介します。
+
=== はじめに ===
はじめの手順はちょっとメンドウだし、仰々しいかもしれませんが、後がラクということで試してみます。
+
* symfonyプロジェクトのデプロイツールCapifonyを紹介します。
 +
* はじめの手順はちょっとメンドウだし、仰々しいかもしれませんが、後がラクということで試してみます。
  
 
=== Capistranoとは ===
 
=== Capistranoとは ===
16行目: 17行目:
  
 
* デプロイを実行する環境に下記が必要。  
 
* デプロイを実行する環境に下記が必要。  
==== Ruby ====
 
  
  各自準備
+
==== Ruby ====
 +
  (各自準備)
  
 
==== Capistrano ====
 
==== Capistrano ====
28行目: 29行目:
 
=== デプロイスクリプトの準備  ===
 
=== デプロイスクリプトの準備  ===
  
symfonyプロジェクトディレクトリで実行  
+
==== symfonyプロジェクトディレクトリで実行 ====
  
 
  $ capifony .
 
  $ capifony .
35行目: 36行目:
 
  [done] Symfony1 project capifonied!
 
  [done] Symfony1 project capifonied!
 
  config/deploy.rbを編集  
 
  config/deploy.rbを編集  
 +
 +
==== 生成されたconfig/deploy.rbを編集 ====
 +
 +
set :user, "ssh_user"              #sshログインするユーザーアカウント
 +
ssh_options[:keys] = %w(~/.ssh/account-ssh-key)
 +
set :application,  "application_name"
 +
set :deploy_to,    "/home/application/src/"
 +
set :scm,          :subversion
 +
set :scm_username, "deployer"      #デプロイ用ユーザーアカウント
 +
set :scm_password, "********"
 +
role :web do
 +
[
 +
  "app1.example.com",    #デプロイ対象webサーバーを列挙します
 +
  "app2.example.com",
 +
]
 +
end
 +
set  :use_sudo,      false
 +
set  :keep_releases,  3
  
 
=== 初回デプロイ ===
 
=== 初回デプロイ ===
71行目: 90行目:
  
 
  cap deploy -S repository='http://svn.example.co.jp/svn/application/tags/RELEASE-1.0.1'
 
  cap deploy -S repository='http://svn.example.co.jp/svn/application/tags/RELEASE-1.0.1'
 +
 +
[[Category:PHP]]
 +
[[Category:symfony]]
 +
[[Category:開発ツール]]

2013年4月20日 (土) 22:51時点における最新版

はじめに

  • symfonyプロジェクトのデプロイツールCapifonyを紹介します。
  • はじめの手順はちょっとメンドウだし、仰々しいかもしれませんが、後がラクということで試してみます。

Capistranoとは

  • Rubyで書かれたデプロイツール。もともとはRailsアプリのデプロイ向け?
  • デプロイ対象サーバーにsshログインして、任意のコマンドを実行することができる。
  • 複数のサーバーへも並行して処理を実行できる。

Capifonyとは

  • Capistranoを PHPフレームワーク symfonyで使えるようにしたもの。
  • symfony用のコマンドが実行できるようになっている。

準備

  • デプロイを実行する環境に下記が必要。

Ruby

(各自準備)

Capistrano

sudo gem install capistrano 

Capifony

sudo gem install capifony 

デプロイスクリプトの準備

symfonyプロジェクトディレクトリで実行

$ capifony .
[add] writing './Capfile'
[add] writing './config/deploy.rb'
[done] Symfony1 project capifonied!
config/deploy.rbを編集 

生成されたconfig/deploy.rbを編集

set :user, "ssh_user"               #sshログインするユーザーアカウント
ssh_options[:keys] = %w(~/.ssh/account-ssh-key)
set :application,  "application_name"
set :deploy_to,    "/home/application/src/"
set :scm,          :subversion
set :scm_username, "deployer"       #デプロイ用ユーザーアカウント
set :scm_password, "********"
role :web do
[
  "app1.example.com",     #デプロイ対象webサーバーを列挙します
  "app2.example.com",
]
end
set  :use_sudo,       false
set  :keep_releases,  3

初回デプロイ

各サーバーにディレクトリを準備

cap deploy:setup

共有ディレクトリを作成

cap shell < 'mkdir -p src/shared/config; exit'

データベース接続設定ファイルをコピー

cap shared:databases:to_remote
  • この仕組みを使うと、ログ、データベース接続設定はデプロイ対象外となり、気にしなくてよくなります。

2回目以降のデプロイ(チェックアウトとシンボリックリンク切り替えを別に実行)

指定リポジトリをチェックアウト

cap deploy:update_code -S repository='http://svn.example.co.jp/svn/application/tags/RELEASE-1.0.0'

シンボリック切り替え

cap deploy:create_symlink

直前のチェックアウトに切り戻す(直前のチェックアウトにシンボリックリンク切り替え)

cap deploy:rollback

不要なチェックアウトを削除

cap deploy:cleanup

2回目以降のデプロイ(チェックアウトとシンボリックリンク切り替えを一気に実行する場合)

cap deploy -S repository='http://svn.example.co.jp/svn/application/tags/RELEASE-1.0.1'

facebook slideshare rubygems github qiita