-デプロイ自動化ツールCapistrano。デフォルトタスクで収まる場合は使う価値ありだが、余計なことをしすぎて使えないと判断。

*インストール [#f5f1b142]

 gem install capistrano

-bundleでインストールしたほうが良いかも。以下のようにGemfileを記述する。

 gem 'capistrano', '~> 3.4.0'

bundle installで3.4が入る!

*capistranoプロジェクトの作成 [#s0d4dab6]

 mkdir test
 cd test
 cap install

**簡単なタスクを作ってみる [#rfc69efc]

-config/deploy/dev.rb

 #
 # Global options
 # --------------
 set :ssh_options, {
   keys: %w(秘密鍵の場所),
   forward_agent: false,
   auth_methods: %w(publickey)
 }
 
 role :app, %w{xxxx01@192.168.99.01 xxx01@192.168.99.02}
 
 task :customdeploy do
  on roles(:app) do
    # invokeでほかのタスクを呼ぶ
    invoke "ls"
    invoke "apacherestart"
  end
 end
 # tomcat 再起動
 task :apacherestart do
   on roles(:app) do
     execute "/etc/init.d/tomcat5 restart"
     execute "/etc/init.d/httpd restart"
   end
 end
 
 task :ls do
   on roles(:app) do
     execute "ls"
   end
 end

-実行

 cap dev customdeploy --dry-run

*タスク [#gb1afd15]

デフォルトではいろいろなタスクがある。capistranoで決められた順番で実行されるが、
framework_tasks = [:starting, :started]で定義するとその順序で実施される?

*コマンド集 [#c364d44d]

|タスクの一覧表示|cap -T|
|実際に実行しないでコマンドのみ表示|--dry-runを付ける|

*設定ファイルの記述 [#de3771a5]

|画面にログ|puts|
|変数の設定|set|
|変数の取得|fetch|
|コマンド実行結果の取得|files = capture(:ls, '-xtr', '/var/tmp')|


*トラブルシューティング [#sab02619]

インストール直後のマシンcap install実施で、以下のエラーが出た。

 cannot load such file -- io/console

-以下のコマンドで解消(gccが必要)

 gem install io-console

*参考記事 [#jf25bc57]

-http://qiita.com/kazuph/items/deeaa7d3f9889674d7fe#2-9
-http://takkkun.hatenablog.com/entry/2013/10/12/Capistrano_3%E3%81%B8%E3%81%AE%E6%89%8B%E5%BC%95%E3%81%8D
-http://qiita.com/taizo/items/afff46a260bd11588962

**Ansibleで代用 [#f9e07502]

http://tdoc.info/blog/2015/01/14/deploying_with_ansible.html


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS