RVM with Server Environment

1,208 views

Published on

サーバ環境で使うRVM
Kanazawa.rb #8 での発表原稿

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,208
On SlideShare
0
From Embeds
0
Number of Embeds
67
Actions
Shares
0
Downloads
4
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

RVM with Server Environment

  1. 1. サーバ環境で使うRVM 株式会社クルウィット 井澤 志充 Kanazawa.rb #8 「安心・安全・安定・信頼」できるインターネットサービスを13年4月20日土曜日
  2. 2. RVMとは? • RVM:  Ruby  Version  Manager • 公式サイト:  https://rvm.io/ • 複数のバージョンのRubyを使い分けることが出来る仕組 み • 複数のgemsetも使い分けれます 「安心・安全・安定・信頼」できるインターネットサービスを 213年4月20日土曜日
  3. 3. 「安心・安全・安定・信頼」できるインターネットサービスを 313年4月20日土曜日
  4. 4. Jewelry Box • RVM公式の  OSX版  RVM  GUIインタフェース • 公式サイト:  http://jewelrybox.unfiniti.com/ • RVM環境のステータス確認やメンテナスなどが簡単にで きる • なんかいろいろできるらしいっすー 「安心・安全・安定・信頼」できるインターネットサービスを 413年4月20日土曜日
  5. 5. 「安心・安全・安定・信頼」できるインターネットサービスを 513年4月20日土曜日
  6. 6. 「安心・安全・安定・信頼」できるインターネットサービスを 613年4月20日土曜日
  7. 7. サーバ環境で使う利点 •新しいバージョンのRuby/Gemへの容易易なアップグレード が可能 • セキュリティフィックスなど • 複数のバージョンの共存 • ⼀一つにサーバに複数のアプリ(サービス) →RVMを介することで、コードの改修なしに追従可能 「安心・安全・安定・信頼」できるインターネットサービスを 713年4月20日土曜日
  8. 8. RVMのインストール • インストール方法は3種類 • Single-User install • ユーザ個人用に、~/.rvm へ installされる • Multi-User install • システム全体用に、/usr/local/rvm へinstall される • Mixed-User install • multi-Userでinstallされたものをベースに個人で使 う部分を別途、追加/Overrideして使うモード 「安心・安全・安定・信頼」できるインターネットサービスを 813年4月20日土曜日
  9. 9. RVMのしくみ • Shell-‐‑‒Scriptのかたまり • 環境変数・Shell変数を適宜設定して、使うRuby/Gemを 変更更している • $PATH,  $GEM_̲HOME,  $GEM_̲PATH,など • 上記の適宜設定の部分を手動でやっても使うことができ るということ 「安心・安全・安定・信頼」できるインターネットサービスを 913年4月20日土曜日
  10. 10. RVMの使い方 • 使⽤用するrubyの切切り替え • rvm  use  <ruby-‐‑‒version> • エイリアスの設定 • rvm  alias  create  <alias>  <origin> • gemsetの設定 • rvm  gemset  create  <gemset> • rvm  use  <ruby>@<gemset> 「安心・安全・安定・信頼」できるインターネットサービスを 1013年4月20日土曜日
  11. 11. サーバ環境で使う方法 今回のポリシとして… • サービスアプリごとに専⽤用のユーザを作成する • アプリユーザのSingle-‐‑‒User  installで利利⽤用する • 全てのプロセスは、アプリユーザが実効ユーザであるよ うにする 「安心・安全・安定・信頼」できるインターネットサービスを 1113年4月20日土曜日
  12. 12. rc.d/init.d Scriptの場合 #!/usr/local/bin/bash start() { echo -n "Starting hogeapp: " su app_user -c "source /home/app_user/.rvm/scripts/rvm; cd /home/app_user/hogeapp; bin/unicorn_rails -c config/unicorn.rb - E production -D" return 0 } stop() { kill -INT `cat ~app_user/hogeapp/tmp/pids/unicorn.pid` return 0 } case "$1" in start) start ;; stop) stop ;; esac 「安心・安全・安定・信頼」できるインターネットサービスを 1213年4月20日土曜日
  13. 13. milterとかexploder系 • magicで直接  Rubyを呼ぶものの場合: #!/home/app_user/.rvm/rubies/default/bin/ruby # -*- coding: utf-8 -*- require mail require nokogiri : : 「安心・安全・安定・信頼」できるインターネットサービスを 1313年4月20日土曜日
  14. 14. ポイントは… • コード側からは  rvm  の  “default”  を利利⽤用 • 利利⽤用したい環境を”default”にしておくこと • rvmのdefaultを切切り替えるとそのまま追従する • rvmなので切切り替え前に実サーバ上で、前環境を壊さず にテスト可能 • 失敗しても元に戻れる  →  重要 • rvm  wrapper  コマンドは、バージョン@gemset直接指 定しているのでいまいち 「安心・安全・安定・信頼」できるインターネットサービスを 1413年4月20日土曜日
  15. 15. まとめ • サーバ環境にもrvmを使うのおすすめ • rubyのセキュリティfix対応などが楽にできるよ • 複数のアプリケーションごとに別バージョンのruby を共存できるよ 「安心・安全・安定・信頼」できるインターネットサービスを 1513年4月20日土曜日
  16. 16. • Thank  You! • If  you  have  any  comments, • please  send  to: • Mail:  izawa@izawa.org  /  izawa@clwit.co.jp • Twitter:  @Yukimitsu_̲Izawa 「安心・安全・安定・信頼」できるインターネットサービスを 1613年4月20日土曜日

×