LoginSignup
6
6

More than 5 years have passed since last update.

Vagrant・Berkshelf・chrubyでVMにRuby2.1.0-p0を入れる

Last updated at Posted at 2013-12-31

sandbox cookbook

chef歴1週間ほどですが、
Ruby2.1(と2.0と1.9)が動くVMを作るVagrantfileとcookbook作ってみました。

これを利用すると何が出来るか

Ruby2.1(と2.0と1.9)が動くVMが手に入ります。

Berkshelfとchrubyを利用してruby2.1(と2.0と1.9)をVMにインストールします。
chrubyのコマンドで簡単にrubyバージョンを切り替えることが出来ます。

host側でknifeは(とりあえず)使わず、
Vagrantfile内のchaf_soloブロック内の記述でがんばります。

このcookbookはBerkshelfのコマンド"berks cookbook sandbox"で生成されるcookbookを少し編集したものです

Requirements

hostはMacOSXで動いています。
VirtualBoxとVagrantをインストールする必要があります。

  1. Virtual Box 4.3.6
  2. Vagrant 1.4.1
  % vagrant -v
  Vagrant 1.4.1
  % VirtualBox --help
  Oracle VM VirtualBox Manager 4.3.6
  (C) 2005-2013 Oracle Corporation
  All rights reserved.

Usage

  1. このcookbookをクローンします

    % git clone https://github.com/hoshinotsuyoshi/sandbox.git

  2. Gemのインストール

  % bundle --path vendor/bundle
  1. 3rdパーティーCookbooksのインストール
  % bundle exec berks
  1. Vagrantfileの編集
    hostnameとかipaddressを適宜編集します

  2. VMの起動

  % vagrant up

boxが元々ある状態で、約20分かかります。
boxが元々ない状態だと結構(プラス1時間くらい?)かかります

vm側でのrubyの切り替え方

まずログイン

% vagrant ssh

chrubyでインストール済みのrubyを確認できます

[vagrant@vm ~]$ chruby
  1.9.3-p484
  2.0.0-p353
  2.1.0
* embedded

chruby [version]で利用するrubyをchangeできます

[vagrant@vm ~]$ chruby 2.1
[vagrant@vm ~]$ ruby -v
ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-linux]

もっと良いやり方はいっぱいある気がしますが、よろしくお願いいたします。乞うご指摘

追記

出来上がったVM上でのbundle installが遅いという問題があった。
結論、VM上の/etc/resolv.confに

'options single-request-reopen'

と追記すれば良い
(参考)
https://github.com/mitchellh/vagrant/issues/1172#issuecomment-21083596
(メモ)
https://github.com/hoshinotsuyoshi/sandbox/issues/1

6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6