32bit Win7上でVagrant使って開発環境構築 box構築編
本日の流れ
- veeweeのtemplateから作成したいVMのtemplate選ぶ→definition作成
- definitionを微修正
- definitionを基にubuntuをインストール
- Vagrant用boxファイル作成
- 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/
から、ありがたく頂戴すれば良いはず。