vagrant/veeweeでUbuntu環境を構築する方法

Brogramming with Tom
今回は、vagrant/veeweeでUbuntu環境を構築する方法を紹介します。boxファイルを使うと面倒な作業が短縮出来ます。

photo credit: ryanoshea via photopin cc

vagrantVirtualBoxを利用した仮想マシンをコマンドラインから作成してくれるソフトウェアのことです。環境を作ったり、壊したり、戻したりという作業を簡易化、自動化できるところにメリットがあります。


vagrant/veeweeのインストール



rvm


bundle実行時にRuby 1.9.3を使いますので、 rvmrbenvなどを使いバージョンを使い分けられるようにしておいて下さい。ここでは、 rvmを使います。

# http://d.hatena.ne.jp/katsusuke/20120806/1344233040


sudo port install apple-gcc42 autoconf automake


sudo ln -snf /opt/local/bin/gcc-apple-4.2 /usr/bin/gcc



# http://d.hatena.ne.jp/inouetakuya/20120205/1328443579


bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)


source ~/.bash_profile



rvm install 1.9.3

rvm use 1.9.3

rvm default 1.9.3



vagrant/veewee



# http://qiita.com/items/a2464c27008decbfb9dc

gem install vagrant

gem install bundler

git clone git://github.com/jedi4ever/veewee.git && cd veewee/

cat .rvmrc

sed -e "s/1.9.2/1.9.3/g" .rvmrc

bundle install



vagrantでUbuntuをインストール・起動



# http://qiita.com/items/895b3d61311b19737237

vagrant box add ubuntu https://s3-us-west-2.amazonaws.com/squishy.vagrant-boxes/precise64_squishy_2013-02-09.box

vagrant init ubuntu

vagrant up



boxファイルを使いUbuntuを起動するまで



# http://kanetann.hatenablog.com/entry/2013/04/15/233737

git clone https://github.com/kanetann/veewee_ubuntu1204.git

cd veewee_ubuntu1204/definitions

vagrant init 'ubuntu1204'

vagrant up

vagrant ssh



vagrantfileの編集



vagrantfileはrubyで記述できる

# http://qiita.com/items/8b487aefa73b9b267f09

# 通常設定
Vagrant::Config.run do |config|
config.vm.box = "centos"
end


# シングルvmカスタマイズ
Vagrant::Config.run do |config|
config.vm.box = "centos"
# ローカルに無ければ取ってくる
config.vm.box_url = "https://dl.dropbox.com/u/7225008/Vagrant/CentOS-6.3-x86_64-minimal.box"
# ip指定
config.vm.network :hostonly, "192.168.33.10"
config.vm.customize do |vm|
vm.memory_size = 2048  # メモリ2G
vm.name = "centOS6.3"  # 名前指定
end
end


# 一度に複数のvm立ち上げ
Vagrant::Config.run do |config|
config.vm.define :node01 do |cfg|
cfg.vm.box = "centos"
cfg.vm.network :hostonly, "192.168.30.10"
cfg.vm.host_name = "node01"
end

config.vm.define :node02 do |cfg|
cfg.vm.box = "centos"
cfg.vm.network :hostonly, "192.168.30.11"
cfg.vm.host_name = "node02"
end

config.vm.define :node03 do |cfg|
cfg.vm.box = "centos"
cfg.vm.network :hostonly, "192.168.30.12"
cfg.vm.host_name = "node03"
end
end


基本コマンド


vagrant


コマンド 効果
vagrant init 参照
vagra nt up 起動
vagrant ssh SSH接続
vagrant halt シャットダウン
vagrant status ステータス表示
vagrant destroy 削除


sahara


vagrantの状態を巻き戻したりできます。


# http://qiita.com/items/8b487aefa73b9b267f09
gem install sahara

コマンド 効果
vagrant sandbox on 開始
vagrant sandbox off 終了
vagrant sandbox rollback 巻き戻し
vagrant sandbox commit 反映
vagrant sandbox status ステータス表示