nmtysh.log

Tech系のネタや日々の独り言などを書いています。

Vagrantのboxを作る(CentOS 6.5 x86_64)

本当は昨日公開する予定だったんですが、今日になっちゃいました。

[構成]

CentOS 6.5 x86_64
 CentOS-6.5-x86_64-netinstall.iso
http://ftp.jaist.ac.jp/pub/Linux/CentOS/6.5/isos/x86_64/
・CPU 1コア
・MEM 768MB
・Disk
 ・Disk1 20GiB 可変
  ・/boot     500MiB
  ・/(root) 15883MiB
  ・swap     4096MiB
 ・Disk2 20GiB 可変
  ・/data   20GiB
・ネットワーク
 ・NAT
  Intel PRO/1000 MT Desktop(8254OEM)
 ・Host-Only Adapter(vboxnet0)
  Intel PRO/1000 MT Desktop(8254OEM)


[設定]

・Domain
 centos65.localdomain
・Timezone
 Asia/Tokyo
 (System Clock UTC)
・言語
 Japanese
・キーボード
 US


[パッケージ]

・日本語サポート
・ベースシステム


[OSインストール後]
1. アップデート

# yum update -y
# yum clean all
# shutdown -r now


2. vagrant ユーザー作成

# user add vagrant
# passwd vagrant
vagrant


3. sudoers

# visudo
vagrant ALL=(ALL) NOPASSWD: ALL

を追加 Defaults requiretty をコメントアウト

4. ssh keyを追加

# su - vagrant
$ mkdir .ssh
$ chmod 0700 .ssh
$ cd .ssh
$ wget https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub -O authorized_keys
$ chmod 0600 authorized_keys


5. sshd 設定

# vi /etc/ssh/sshd_config
UseDNS no
# /etc/init.d/sshd restart


6. grubタイムアウトを短くする

# vi /boot/grub/grub.conf
timeout=0


7. virtual box guest addon

# yum install kernel-devel gcc
# mount /dev/cdrom /media
# /media/VBoxLinuxAdditions.run
# umount /dev/cdrom


8. 履歴消去

# cat /dev/null > /home/vagrant/.bash_history
# cat /dev/null > ~/.bash_history


9. ゼロ埋め

# dd if=/dev/zero of=/data/zero
# rm -f /data/zero
# dd if=/dev/zero of=/zero
# rm -f /zero


10. 停止。ディスクファイル圧縮

# shutdown -h now
Hostで実行
$ VBoxManage modifyhd --compact root.vdi
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
$ VBoxManage modifyhd --compact data.vdi
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%


[boxを作成]

$ VBoxManage list vms
(省略)
"CentOS6.5" {48bf47f2-7145-4902-a67b-2579af927015}
$ vagrant package --base CentOS6.5 --output centos65-x86_64_20131231.box
[CentOS6.5] Clearing any previously set forwarded ports...
[CentOS6.5] Creating temporary directory for export...
[CentOS6.5] Exporting VM...
[CentOS6.5] Compressing package to: /Users/Username/VirtualBox VMs/CentOS6.5/centos65-x86_64_20131231.box


[test]

$ vagrant box add test /Users/Username/VirtualBox VMs/CentOS6.5/package.box
$ vagrant init test
$ vagrant up


boxを作成するときにメモリーサイズの設定は引き継がれるようです。
逆にネットワークIFの設定は引き継がれませんでした。
他の設定はほぼデフォルトのため確認できていませんが、他にも引き継がれる設定があるのかな…

参考:
Creating a Base Box - Vagrant Documentation
vagrantでVirtualBox4.3用のbox作り方 (ubuntu13.10) - Qiita [キータ]