ubuntu12.04にVagrantをインストールする

VagrantをUbuntu12.04にインストールしようと思った時に予想以上に詰まったので備忘録としてのメモ。\
環境は以下の通りです。

  • OS: elementaryOS(Luna) 64bit
  • rbenvインストール済み

Virtual Boxのインストール

Virtual Box Wikiを参考にインストール。

ソースリストの追加

今回はUbuntu12.04なのでDebian-based Linux distributionsを見ます。
Ubuntu12.04はpreciseなので/etc/apt/sources.listの最終行に以下を追加\
※root権限が必要です。

deb http://download.virtualbox.org/virtualbox/debian precise contrib

鍵の登録

Oracleの公開鍵を取得します。

wget https://www.virtualbox.org/download/oracle_vbox.asc
sudo apt-key add oracle_vbox.asc

インストール

sudo aptitude update
sudo aptitude install virtualbox-4.3
sudo virtualbox

で起動するかどうかの確認をしてください。

Vagrantのインストール

本体のインストール

VagrantのLINUX(DEB)64bitをダウンロード。今回は\~/Downloadにvagrant_1.7.2_x86_64.debを保存しました。

cd ~/Download
dpkg -i vagrant_1.7.2_x86_64.deb
rbenv rehash
vagrant -v
Vagrant 1.7.2

boxのインストール

Vagrantは仮想マシンを立ち上げるものなので、その仮想マシンのOSが必要となります。そのOSのことをboxと呼んでいるようです。今回は2種類のboxをインストールしてみました。

centos6.3 32bit

まず、http://www.vagrantbox.es/に行き、欲しいboxを選びます。
今回はVirtualBoxを使っているのでVirtualBoxと書かれているものの中で欲しいOSがあればURLをコピーし
vagrant box add {title} {url}
と入力します。{title}は好きにつけることが出来ます。今回はcentos6.3をインストールします。

vagrant box add centos6.3 https://dl.dropbox.com/sh/9rldlpj3cmdtntc/chqwU6EYaZ/centos-63-32bit-puppet.box
cd ~/ #開発用のフォルダを作る
mkdir vagrant && cd vagrant
mkdir test1 && cd test1
vagrant init centos6.3
vagrant up

vagrant
upをするとsshの接続のセッションにおいてリトライを繰り返しますがそのまま放置しているとつながります。OSの起動時間を考慮せずに接続を試み続けていることが原因のようで、気になるならVagrant
initで出来たVagrantfileの中にある

# config.vm.provider "virtualbox" do |vb|
#   # Display the VirtualBox GUI when booting the machine
#   vb.gui = true
#
#   # Customize the amount of memory on the VM:
#   vb.memory = "1024"
# end

config.vm.provider "virtualbox" do |vb|
# Display the VirtualBox GUI when booting the machine
  vb.gui = true
#
#   # Customize the amount of memory on the VM:
#   vb.memory = "1024"
end

と書き換えましょう。するとvagrant
upをした時にGUIも立ち上がるようになり、動きがわかります。ログインIDとPASSWORDはデフォルトではどちらもvagrantです。

vagrant upをした後にvagrant
sshをすることで仮想マシンにssh接続することも出来ます。

centos6.5 64bit

centos6.3の場合と同様なのですがvagrant upするとエラーを吐きます。

vagrant box list
    base (virtualbox, 0)
    centos6.5 (virtualbox, 0)
cd ~/vagrant
mkdir test2 && cd test2
vagrant box add centos6.5 https://github.com/2creatives/vagrant-centos/releases/download/v6.5.3/centos65-x86_64-20140116.box
vagrant init centos6.5
vagrant up

どうやら64bit版を起動するにはBIOSでVirtualization
TechnologyをEnableにしておかないといけないようです。
私が使っているhpのマシンでは起動時のhpの文字が出ているときにF10を押し、System
Configurationの中のDevice ConfigurationsにあるVirtualization
Technology(VTx)にチェックを入れることで64bit版も動作するようになりました。
詳しくは仮想化支援機構(VT-x/AMD-V)を有効化できませんをご覧ください。