2015年5月11日月曜日

技術的負債の返却 その2 rubyのバージョンアップ

  • 公開日:2015年5月11日
  • 最終更新日:2015年5月17日

技術的負債の返却は計画的に(by ◯コム)。

以前に、railsを4.1.2から4.2.1にバージョンアップしたので、今回はrubyのバージョンをruby 2.1.2 からruby 2.2.2にupdateします。
以下、忘備録です。

環境

  • rails4.2.1
  • vagrant(centos6.5)
  • chef11.18.0.rc.1

vagrantを立ちあげて、rubyの現在のバージョンを確認する


vagrant up
vagrant ssh

ruby -v
ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-linux]

chefのrolesで設定しているjsonファイルを更新する

Before


    // something...

    "rbenv": {
      "rubies": "2.1.2"
      "global" : "2.1.2",
      "gems" : {
        "2.1.2" : [
          { "name" : "bundler" }
        ]
      }      
    },

    // something...

After


    // something...

    "ruby_build": {
      "upgrade": "sync"
    },
    "rbenv": {
      "rubies": "2.2.2",
      "global" : "2.2.2",
      "gems" : {
        "2.2.2" : [
          { "name" : "bundler" }
        ]
      }      
    },

    // something...

変更のポイントは以下の箇所になります。


    "ruby_build": {
      "upgrade": "sync"
    },

上記の設定は、chef-ruby_buildを利用している場合、既にruby-buildがインストールされていると更新がかからないようになっているので、 ruby_buildのattributeにupgradeを設定しています。上記以外に、"upgrade": trueでも動作するみたいです。

chefを実行


cd {chefのフォルダ}
knife solo cook 192.XXX.33.XXX

結果


ruby -v
ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-linux]

無事に変更されています。bundleのgemも変更されているのでbundle installを実行する必要があります。


bundle install --path /tmp

vagratでbundle installをするときは、ホストとsyncしていないフォルダを指定します。syncしているフォルダを選択すると、bundle execが途中で止まってしまいます(もしくは激重)。

デグレのチェックのためにテストコードを実行


cd {プロジェクトフォルダ}
bundle exec rspec spec

みんな大好きrspec。上記の処理を実行してエラーが発生しなければ問題ありません。

開発環境でdeploy

まずは念のために開発環境をdeployしてみましょう。deployツールにはcapistrano(3.2.1)を使用します。
最初に、rubyのバージョンを2.1.2に設定していたdeploy.rbとCapfileを2.2.2に変更します。

deploy.rbを修正


set :rbenv_type, :system # :system or :user
set :rbenv_ruby, '2.2.2'

Capfileを修正


require 'capistrano/rbenv'
set :rbenv_ruby, '2.2.2'

deploy実行

上記のファイルを変更したら、deployを実行します。


bundle exec cap development deploy

bundle installされるので時間がかかりますが、うまく動きます。

本番環境では「chefを実行」からの手順を開発環境と同じように実施すればOKです。

以上

参照

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

0 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...