/var/log/messages

debugging with sixth sense

Git Push な Deploy 検討

pull request が merge された後にそれを開発機側に反映して push で deploy するにあたってサーバ側でどんな処理が必要かを控えておくことに。

まだ諸々のソレは手動です。

とりあえずリポジトリに反映させたらば

  • bundle install --path vendor/bundler --without test development
  • RAILS_ENV=production bundle exec rake db:migrate
  • RAILS_ENV=production bundle exec rake assets:precompile
  • kill -9 `cat /tmp/hoge.pid`
  • RAILS_ENV=production bin/echo_server stop
  • RAILS_ENV=production bin/echo_server start
  • bundle exec unicorn_rails -c config/unicorn.rb -E production -D
  • sudo service nginx restart

で良いのかな。つうことは post-receive な hook で上の処理が書いてあれば良いのか。

別途、これを踏まえて git push で deploy するソレを盛り込む方向です。

自動化?

この環境を自動で作るには、というお題もありますね。

pid なファイル名は

grep pid config/unicorn.rb|awk '{print $2;}'|sed -e 's/[^"]*"\([^"]*\)".*/\1/'

で取得できるんですが、こうすりゃ良いのかな。

kill -9 $(cat `grep pid config/unicorn.rb|awk '{print $2;}'|sed -e 's/[^"]*"\([^"]*\)".*/\1/'`)

いやはや。

試験してみた

大丈夫でした。

これ、okidevops なネタとして

  • ansible だとどうやるか
  • docker だとどうやるか

ってあたり、アレゲです。

Comments