VIRTUALBOX から VAGARNT の BOX 作成

みなさん、こんにちは。今回初投稿の[株式会社アットウェア](http://http://www.atware.co.jp/)の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](https://www.virtualbox.org/)
 * [vagarnt](https://www.vagrantup.com/)

# VIRTUALBOXにCENTOS 5.8を作成する
## １．VIRTUALBOXに新規VMを作成します
![to_box_from_vm_1.png](https://qiita-image-store.s3.amazonaws.com/0/77947/b83a2463-6c87-b6a8-d220-b045fb6ff561.png)
![to_box_from_vm_2.png](https://qiita-image-store.s3.amazonaws.com/0/77947/3a66bb66-86e7-e7c0-88ad-a33be93231ef.png)
![to_box_from_vm_3.png](https://qiita-image-store.s3.amazonaws.com/0/77947/88bdad05-c58d-a5a2-3650-f0a01cf78f13.png)
![to_box_from_vm_4.png](https://qiita-image-store.s3.amazonaws.com/0/77947/fd6fe125-4dbd-5824-1285-b8d2109f62a2.png)
![to_box_from_vm_5.png](https://qiita-image-store.s3.amazonaws.com/0/77947/bcb129bb-ce0c-a87c-e194-4f4101ed7faa.png)
![to_box_from_vm_6.png](https://qiita-image-store.s3.amazonaws.com/0/77947/5c9411a7-29bf-8cd3-8197-f3d6b1d69955.png)
![to_box_from_vm_7.png](https://qiita-image-store.s3.amazonaws.com/0/77947/d0137fc1-2125-24b1-98ea-96e344fd0cc8.png)

## ２. VMの設定を行います
![to_box_from_vm_8.png](https://qiita-image-store.s3.amazonaws.com/0/77947/29859155-ed6a-a71f-ff91-6a3b2046ae83.png)
![to_box_from_vm_9.png](https://qiita-image-store.s3.amazonaws.com/0/77947/affa7d7c-f5c5-a646-1524-4b334a9da182.png)
![to_box_from_vm_10.png](https://qiita-image-store.s3.amazonaws.com/0/77947/89017560-b5c9-e257-5733-bf2ea762b259.png)
![to_box_from_vm_11.png](https://qiita-image-store.s3.amazonaws.com/0/77947/cfd67f80-607f-a18b-6865-4fa41f180c79.png)
![to_box_from_vm_12.png](https://qiita-image-store.s3.amazonaws.com/0/77947/a9773139-018c-5339-74b7-c3b9445cc73a.png)

## ３. CENTOS 5.8 インストール
新規作成ボタンを押して下さい。ここでisoファイルの指定ができます。 ここでは CentOS-5.8-i386-netinstall.isoを使いました。このisoファイルは[こちら](http://archive.kernel.org/centos-vault/5.8/isos/i386/)にあります。
![to_box_from_vm_13.png](https://qiita-image-store.s3.amazonaws.com/0/77947/ab443886-5dab-eb99-40c8-9c6bd2e01988.png)
![to_box_from_vm_14.png](https://qiita-image-store.s3.amazonaws.com/0/77947/0312cf04-2bf2-6a57-2197-a00ac06c4e7f.png)
![to_box_from_vm_15.png](https://qiita-image-store.s3.amazonaws.com/0/77947/f0f219d2-b195-efa1-61b6-d9eccb689612.png)
![to_box_from_vm_16.png](https://qiita-image-store.s3.amazonaws.com/0/77947/508648d4-02ab-4942-5c1f-5c1e264ae05e.png)
![to_box_from_vm_17.png](https://qiita-image-store.s3.amazonaws.com/0/77947/4192a433-34ff-9341-b59d-f488ad7f6a76.png)
![to_box_from_vm_18.png](https://qiita-image-store.s3.amazonaws.com/0/77947/356c480a-3270-3b8a-0694-54f861ddaa3c.png)
![to_box_from_vm_19.png](https://qiita-image-store.s3.amazonaws.com/0/77947/fd8360cb-14db-a702-b411-961a3688c35c.png)
![to_box_from_vm_21.png](https://qiita-image-store.s3.amazonaws.com/0/77947/e1eec841-73e3-216f-72cb-8c5191ecc5cc.png)
![to_box_from_vm_22.png](https://qiita-image-store.s3.amazonaws.com/0/77947/aafe8470-7e98-8a9c-a4ee-8ef4618d6523.png)
![to_box_from_vm_23.png](https://qiita-image-store.s3.amazonaws.com/0/77947/641a3125-c43e-5b07-f7c9-0791e934783f.png)
![to_box_from_vm_24.png](https://qiita-image-store.s3.amazonaws.com/0/77947/a1a926a1-97a5-225f-eedb-b9c491f0df46.png)
![to_box_from_vm_25.png](https://qiita-image-store.s3.amazonaws.com/0/77947/b7a11403-0912-53f6-7fd0-c2b56ac49662.png)
![to_box_from_vm_26.png](https://qiita-image-store.s3.amazonaws.com/0/77947/005e0049-5724-9ac2-0359-7e15fd5e9e06.png)
![to_box_from_vm_27.png](https://qiita-image-store.s3.amazonaws.com/0/77947/6167a8cd-d3e0-7cc2-416c-aeade6425e9e.png)
![to_box_from_vm_28.png](https://qiita-image-store.s3.amazonaws.com/0/77947/73d72be0-8e2a-2982-4ac1-8f46f1e4516e.png)
![to_box_from_vm_29.png](https://qiita-image-store.s3.amazonaws.com/0/77947/f49ac412-42b6-e68a-25df-d09441cc76e1.png)
![to_box_from_vm_30.png](https://qiita-image-store.s3.amazonaws.com/0/77947/d78cce0e-09fd-f636-cbb4-a31ba01ab1c9.png)
![to_box_from_vm_31.png](https://qiita-image-store.s3.amazonaws.com/0/77947/e724fcd6-0ffb-29fa-13d7-e42393c97a35.png)
![to_box_from_vm_32.png](https://qiita-image-store.s3.amazonaws.com/0/77947/60c8c9d4-4099-032e-7d26-e1e58fd87f57.png)
![to_box_from_vm_33.png](https://qiita-image-store.s3.amazonaws.com/0/77947/a0f4cfba-e892-7ccc-573b-9d82c206fdcd.png)
![to_box_from_vm_34.png](https://qiita-image-store.s3.amazonaws.com/0/77947/9e2f0aa9-96f4-6f65-47c0-71757f188d72.png)
![to_box_from_vm_35.png](https://qiita-image-store.s3.amazonaws.com/0/77947/f3d84ec3-a537-ab04-fb22-499ddaf99443.png)
![to_box_from_vm_36.png](https://qiita-image-store.s3.amazonaws.com/0/77947/7f15e8d8-5f86-5d1e-f9c8-36a19b72c492.png)

## ４. 色々と設定を行います
### 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
```
<span style="color: red">※VirtualBoxのバージョンに合わせてダウンロードしてください。 </span>

```
# 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/
```

## ５. 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)も欲しかったので、同様の手順でさくさくと作っています。

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