VirtualBox から vagarnt の box 作成


みなさん、こんにちは。KEYチームの矢納です。
過去記事の目次はこちらに移動しました。

プロジェクトでCentOS 5.8(32bit)を使うことがあり、vagrantのboxを探していたのですが、見つかりませんでした。
vagrantのboxは http://www.vagrantbox.es/ に置いてあります。
ですが、ここにはCentOS 5.6(32bit)、CentOS 5.8(64bit)しかありませんでした。今欲しいのはCentOS 5.8(32bit)だよ。
無いのなら作るしか無い精神で今回作ってみました!
今回はその手順を紹介して行きたいと思います。

VirtualBox, vagrant のインストール

ここのインストール方法は省略します。各々のサイトからダウンロードしてインストールしてください。

VirtualBoxにCentOS 5.8を作成する


1.VirtualBoxに新規VMを作成します

2. VMの設定を行います

3. CentOS 5.8 インストール

新規作成ボタンを押して下さい。ここでisoファイルの指定ができます。 ここでは CentOS-5.8-i386-netinstall.isoを使いました。

4. 色々と設定を行います

4.1 起動時にupしていないNICの設定を見直す。

# sed -i -e "s:^ONBOOT=no$:ONBOOT=yes:" /etc/sysconfig/network-scripts/ifcfg-eth0
# cat /etc/sysconfig/network-scripts/ifcfg-eth0 | grep ONBOOT
# service network restart
# ip addr show eth0

4.2 MACアドレスとUUIDを無効化

# ln -f -s /dev/null /etc/udev/rules.d/70-persistent-net.rules 
# sed -i -e "s:HWADDR=.*::g" /etc/sysconfig/network-scripts/ifcfg-eth0
# sed -i -e "s:UUID=.*::g" /etc/sysconfig/network-scripts/ifcfg-eth0

4.3 sshの設定後。 UseDNS を起動

# sed -i -e "s:^#UseDNS yes:UseDNS no:" /etc/ssh/sshd_config
# service sshd start
# chkconfig sshd on

4.4 vm へ ssh

ここからの手順は、通常のターミナルからVirtualBoxにアクセスして作業することとする。

$ ssh root@localhost -p 2222

4.5 vagrant グループ&ユーザ追加

# groupadd vagrant
# useradd vagrant -g vagrant -G wheel
# echo "vagrant ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers # sudo設定
# sed -i -e "s:^.*requiretty:#Defaults requiretty:" /etc/sudoers # requiretty を無効

4.6 vagrantユーザ用の公開鍵を配置

# su - vagrant
# mkdir ~/.ssh
# chmod 0700 ~/.ssh
# curl -k -L -o ~/.ssh/authorized_keys  https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub
# chmod 0600 ~/.ssh/authorized_keys

4.7 VirtualBox の Guest Additions をインストール

# yum install -y wget 
# mkdir /media/VBoxGuestAdditions
# wget http://download.virtualbox.org/virtualbox/4.3.18/VBoxGuestAdditions_4.3.18.iso

※VirtualBoxのバージョンに合わせてダウンロードしてください。 # mount -o loop,ro VBoxGuestAdditions_4.3.18.iso /media/VBoxGuestAdditions # sh /media/VBoxGuestAdditions/VBoxLinuxAdditions.run

Installing the Window System drivers
Could not find the X.Org or XFree86 Window System, skipping.
は無視しても良いそうです!

4.8 後処理

# rm VBoxGuestAdditions_4.3.18.iso
# umount /media/VBoxGuestAdditions
# rmdir /media/VBoxGuestAdditions/

5. box を作成する(各自の端末で)

# cd ~/VirtualBox\ VMs/centos-5.8_x32/

※各自でVirualBoxの保存先は変更してください # vagrant package --base centos-5.8x32 --output centos-5.8x32.box

あとがき

後は作成したboxを使って

$ vagrant box add centos-5.8_x32 centos-5.8_x32.box
$ vagrant init centos-5.8_x32
$ vagrant up

とすればvagrantを使ってCentOS 5.8(32bit)を使用することができます。

今回VMにCentOSをインストールする際にnet-install版を使用しました。実はこれ 4.1 ~ 4.3 の手順をする必要はないかもしれません。また、iptablesで外部からのアクセスが制限されているかもしれませんので、各自でご確認ください。それから、今回CentOS 5.8(32bit)だけでなく、CentOS 5.7(32bit)も欲しかったので、同様の手順でさくさくと作っています。

では、またお会いしましょう(^^)/