32bit Win7上でVagrant使って開発環境構築 box構築編

今日こそは

boxの構築をするぞ!ってことで
最終目標は、Ubuntu-13.04 desktop上に開発環境整える

2013/08/16 18:40 apt.shを修正

本日の流れ

  1. veeweeのtemplateから作成したいVMのtemplate選ぶ→definition作成
  2. definitionを微修正
  3. definitionを基にubuntuをインストール
  4. Vagrant用boxファイル作成
  5. vagrant up

VMのtemplate選ぶ

veewee落としてきたディレクトリへ移動する
ここは、適宜読み替えて

> cd work\veewee

template一覧表示

> bundle exec veewee vbox templates

ubuntu-13.04-desktop-i386が無いorz
しょうがないので、server版をインストールして、後でGUI対応する。

> bundle exec veewee vbox define 'ubuntu-13.04-desktop-i386' 'ubuntu-13.04-server-amd64'

これで、definitions\ubuntu-13.04-desktop-i386以下にtemplateがコピーされるわけだが
改行コードがWin仕様だと、Ubuntuが正しく解釈できないので
全てのファイルの改行コードを\nに変換しておく。

忘れると、invalid operationと言われ泣きを見るはめになる。。。

definitionを微修正

definitions\ubuntu-13.04-desktop-i386\definition.rbを編集
32bitな民は、amd64ではなくi386のイメージを指定する。

8,11c8,11
<   :os_type_id => 'Ubuntu_64',
<   :iso_file => "ubuntu-12.10-server-amd64.iso",
<   :iso_src => "http://releases.ubuntu.com/12.10/ubuntu-12.10-server-amd64.iso",
<   :iso_md5 => '4bd3270bde86d7e4e017e3847a4af485',
---
>   :os_type_id => 'Ubuntu',
>   :iso_file => "ubuntu-13.04-server-i386.iso",
>   :iso_src => "http://releases.ubuntu.com/raring/ubuntu-13.04-server-i386.iso",
>   :iso_md5 => '73d595b804149fca9547ed94db8ff44f',

apt.shに追記

1行目にsourceのURLをミラーサーバから取得するよう変更するsed追記
変えなくても取得は可能だが、転送スピードが1.5~2倍近く早くなるので、推奨。

> sed -i -e 's#us.archive.ubuntu.com#mirror.math.ucdavis.edu#g' /etc/apt/sources.list

末尾に、ubuntu-desktopをインストールする行を追記。
このままだと、CLIなのでGUI用のパッケージ入れる。

> apt-get -y install ubuntu-desktop

definitionを基にubuntuをインストール

> bundle exec veewee vbox build 'ubuntu-13.04-desktop-i386' --workdir=C:/Users/takeshi.takizawa/work/veewee
Downloading vbox guest additions iso v 4.2.16 - http://download.virtualbox.org/virtualbox/4.2.16/VBoxGuestAdditions_4.2.16.iso
Checking if isofile VBoxGuestAdditions_4.2.16.iso already exists.
Full path: C:/Users/takeshi.takizawa/work/veewee/iso/VBoxGuestAdditions_4.2.16.iso

The isofile VBoxGuestAdditions_4.2.16.iso already exists.
Building Box ubuntu-13.04-desktop-i386 with Definition ubuntu-13.04-desktop-i386:
- debug : false
- cwd : C:/Users/takeshi.takizawa/work/veewee
- force : false
- nogui : false
- auto : false
- checksum : false
- redirectconsole : false
- postinstall_include : []
- postinstall_exclude : []

We did not find an isofile here : C:/Users/takeshi.takizawa/work/veewee/iso/ubuntu-13.04-server-i386.iso.

The definition provided the following download information:
- Download url: http://releases.ubuntu.com/raring/ubuntu-13.04-server-i386.iso
- Md5 Checksum: 73d595b804149fca9547ed94db8ff44f


Download? (Yes/No)

忘れずに、Yesとタイプする。
時間がかかるので、まったりコーヒーでも飲みながら待つ。

The box ubuntu-13.04-desktop-i386 was built successfully!
You can now login to the box with:
ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 7222 -l vagrant 127.0.0.1

成功!

Win7 32bit Core i5-2520M 2.5GHz 4.00GB
で、3時間程度かかった。

Vagrant用boxファイル作成

> bundle exec veewee vbox export 'ubuntu-13.04-desktop-i386'

vagrantに登録

> vagrant box add ubuntu-13.04-desktop-i386 'C:/Users/takeshi.takizawa/work/veewee/ubuntu-13.04-desktop-i386.box'

vagrant up

ここからは、boxファイルに対して色々操作していく。
作業用ディレクトリに移動して

> cd working\directory

Vagrantfile作成

> vagrant init 'ubuntu-13.04-desktop-i386'

いざ、起動!

> vagrant up

sshで入れるかな?

> vagrant ssh
Welcome to Ubuntu 13.04 (GNU/Linux 3.8.0-19-generic i686)

 * Documentation:  https://help.ubuntu.com/
Last login: Thu Aug 15 07:15:17 2013 from 10.0.2.2
vagrant@ubuntu-13:~$

すばらっ

あとは、rails等のCookbookを
http://community.opscode.com/
から、ありがたく頂戴すれば良いはず。