akishin999の日記

調べた事などを書いて行きます。

Veewee による Vagrant の Box 作成環境構築 Windows 版 その2

Veewee による Vagrant の Box 作成環境構築 Windows 版 その1 の続きになります。
前回構築した環境を使って、Veewee で実際に Box を作成していきます。

Box の作成

まずは以下を実行して Veewee が対応している box のテンプレートを表示します。

>bundle exec veewee vbox templates

沢山出てきて見づらい場合は以下のページでも確認できます。

https://github.com/jedi4ever/veewee/tree/master/templates

テンプレートを選んだら、選んだテンプレートの名前を指定して veewee vbox define を実行します。
ここでは「CentOS-6.4-x86_64-minimal」を使用して「centos64」という名前の box の雛形を作成しました。

>bundle exec veewee vbox define centos64 'CentOS-6.4-x86_64-minimal'

これにより veewee\definitions の下にファイルが生成されます。

veewee/definitions/centos64
                      ├─ base.sh
                      ├─ chef.sh
                      ├─ cleanup.sh
                      ├─ definition.rb
                      ├─ ks.cfg
                      ├─ puppet.sh
                      ├─ vagrant.sh
                      ├─ virtualbox.sh
                      ├─ vmfusion.sh
                      └─ zerodisk.sh

作成する box の設定をカスタマイズする場合はこれらのファイルを編集します。
ここではまずは ks.cfg を編集し、以下の項目を変更して日本語環境にしました。

  • ks.cfg
lang ja_JP.UTF-8
keyboard jp106 
timezone Asia/Tokyo

次に definition.rb を編集し、以下などを環境に合わせ適宜変更します。

# CPU æ•°
:cpu_count => '1',
# メモリ容量
:memory_size=> '1024',
# HDD 容量
:disk_size => '30420',
・
・
・
# iso イメージ取得先。最寄のミラーに設定
:iso_src => "http://ftp.jaist.ac.jp/pub/Linux/CentOS/6.4/isos/x86_64/CentOS-6.4-x86_64-minimal.iso",

変更が完了したら veewee vbox build を実行します。

>bundle exec veewee vbox build centos64

途中、以下のように ISO ファイルをダウンロードするか聞かれるので、 Yes を入力し Enter を押します。

・
・
・
We did not find an isofile here : C:/Documents and Settings/akishin/src/ruby/veewee/iso/CentOS-6.4-x86_64-minimal.iso.

The definition provided the following download information:
- Download url: http://yum.singlehop.com/CentOS/6.4/isos/x86_64/CentOS-6.4-x86_64-minimal.iso
- Md5 Checksum: 4a5fa01c81cc300f4729136e28ebe600


Download? (Yes/No) Yes

ISO ファイルがダウンロードされ、自動的に VirtualBox のウインドウが起動して OS のインストールが進んでいきます。

暫く待ち、以下のようなメッセージが表示されれば OS のインストールは完了です。

・
・
・
The box centos64 was built successfully!
You can now login to the box with:
ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 7222 -l veewee 127.0.0.1

もしここまででインストールが途中で失敗したり、やり直したくなって強制的に止めた場合、再度 vbox build を実行するには --force オプションを指定する必要があります。

vbox build 完了後、 VirtualBox のウインドウは開きっぱなしで、ゲストも起動したままになっています。
ここから vagrant 用の box に変換するため、一旦ここで仮想マシンをシャットダウンします。
ゲストには以下のユーザが作成されているので、いずれかでログインして shutdown コマンドを実行してください。

ユーザ パスワード
vagrant vagrant
veewee veewee
root vagrant

一般ユーザも sudo が許可されているので、sudo shutdown -h now などを実行可能です。

仮想マシンが停止したら、コマンドプロンプトから以下を実行し、作成した仮想マシンを box ファイルへとエクスポートします。

>bundle exec veewee vbox export centos64

完了すると veewee ディレクトリの下に拡張子 box のファイルが作成されているので、適当なディレクトリに移動させておきます。

>mv centos64.box D:\vagrant\box

これで box が作成できました。

box を使う

作成した box を使用するには、外部の box を使う時と同様、まずは vagrant に box add する必要があります。
早速作成した box ファイルを vagrant に追加してみます。

>vagrant box add centos64 D:\vagrant\box\centos64.box

問題なく追加できたら、仮想マシン用のディレクトリを作成し、vagrant init を実行します。

>md centos64-01
>cd centos64-01
>vagrant init centos64

これで vagrant 用の新たな仮想マシンが作成されました。
vagrant up すれば仮想マシンが起動できます。

>vagrant up

msysgit を入れてコマンドプロンプトで ssh コマンドが使える状態になっている場合、仮想マシン起動後に vagrant ssh でコマンドプロンプトから SSH 接続することが出来ます。

>vagrant ssh

以後は仮想マシンが必要になる度に、

で作成することが出来るようになりました。

以上で Windows での Vagrant + Veewee 環境の構築は完了です。
Windows 上で気軽に Linux 環境を作ったり消したりできるようになったので、いろいろと検証などがはかどりそうですね。

参考

veeweeを使ってVagrant用のboxを自分で作る方法 | Ryuzee.com
http://www.ryuzee.com/contents/blog/6614