Ubuntu Server 13.04 + Guest AdditionのVagrant base box作った
開発環境を新しいUbuntuで作り直すついでにVagrantのbase boxを作ってみました。タイトルの通り、素のUbuntu Server 13.04にGuest Additonをインストールして、いらんやつを色々消してサイズを小さくしたものです。なんと驚きの約300MBまで小さくなりました。Vagrantがインストールされている状態で、
$ vagrant box add ubuntu1304 http://muratayusuke.com/vagrant/boxes/ubuntu_server_13.04_amd64.box
ってやるとboxが追加されるので、
$ vagrant init ubuntu1304
$ vagrant up
でこのboxを元にした新しいVMが立ち上がります。Vagrantについてはこの辺をご覧ください。
Vagrantで簡単仮想マシン構築
これにlubuntu-desktopを入れて普通にデスクトップマシンとして使ってますが、余計なものが入ってないのでよく使うツールを色々入れてもVMのサイズが1GBぐらいしかなくてかなりいい感じです。(普通にUbuntu Desktopを入れるとあっという間に10GB近くなる)
base boxの作り方
ここから自分用のメモを兼ねてbox作成手順を書いていきます。下記の参考サイトから部分部分使って作りました。
参考サイト:
Creating Debian Squeeze Box for Vagrant
VirtualBoxのGuest AdditionsをUbuntu Serverにインストールする方法
Vagrant のベースBOX作成手順 (Scientific Linux 6.1)
まずは普通にUbuntu Serverをインストールするためのディスクイメージをダウンロード
Download Ubuntu Server
そしてVirtual Boxから新規VMを作成して、先ほどのディスクイメージからUbuntu Serverをインストール。インストール時の設定ではopenssh serverだけ追加で入れた気がします。ログインユーザは後で消すので適当につけてください。
インストールできたらVMを再起動して、VM上のコンソールで下記のコマンドを叩いていきます。
# rootになる
$ sudo su
# 事前準備
$ apt-get update
$ apt-get upgrade
$ apt-get install build-essential module-assistant
$ m-a prepare
# guest additionのインストール
$ mount /dev/dvd /mnt
$ apt-get install xserver-xorg xserver-xorg-core
$ sh /mnt/VBoxLinuxAdditions.run
# vagrantユーザにパスワードなしでsudoできる権限をつける
$ visudo
# add "vagrant ALL=(ALL) NOPASSWD: ALL" after "root ALL=(ALL) ALL "
# vagrantユーザの作成
$ adduser vagrant
# パスワードはvagrant
$ mkdir /home/vagrant/.ssh
$ chmod 700 /home/vagrant/.ssh
$ cd /home/vagrant/.ssh
$ curl 'https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub' > authorized_keys
$ chown -R vagrant:vagrant /home/vagrant/.ssh
# boxサイズ圧縮のために不要ファイルを削除
$ rm -rf /usr/share/doc
$ rm -rf /usr/src/vboxguest*
$ rm -rf /usr/src/virtualbox-ose-guest*
$ rm -rf /usr/src/linux-headers*
$ find /var/cache -type f -exec rm -rf {} \;
$ rm -rf /usr/share/locale/{af,am,ar,as,ast,az,bal,be,bg,bn,bn_IN,br,bs,byn,ca,cr,cs,csb,cy,da,de,de_AT,dz,el,en_AU,en_CA,eo,es,et,et_EE,eu,fa,fi,fo,fr,fur,ga,gez,gl,gu,haw,he,hi,hr,hu,hy,id,is,it,ka,kk,km,kn,ko,kok,ku,ky,lg,lt,lv,mg,mi,mk,ml,mn,mr,ms,mt,nb,ne,nl,nn,no,nso,oc,or,pa,pl,ps,pt,pt_BR,qu,ro,ru,rw,si,sk,sl,so,sq,sr,sr*latin,sv,sw,ta,te,th,ti,tig,tk,tl,tr,tt,ur,urd,ve,vi,wa,wal,wo,xh,zh,zh_HK,zh_CN,zh_TW,zu}
$ dd if=/dev/zero of=/EMPTY bs=1M
$ rm /EMPTY
# 再起動してvagrantユーザでログイン
$ shutdown -r now
# 一時的に作ったログインユーザの削除
$ deluser hoge
# 全部終わったらシャットダウン
$ shutdown -h now
これでboxの元になるVMができたので、ホストOS側のターミナルでboxを作ります。
$ vagrant package --base ubuntu1304
# ubuntu1304のところは、最初にVirtual Boxで作ったVMの名前を入れてください
するとカレントディレクトリにpackage.boxという名前でbase boxができているので、後は煮るなり焼くなり。

「最短で学ぶReactとReduxの基礎から実践まで」10%OFFクーポン
UdemyでReactとReduxの動画講座を公開しています。
このブログの読者限定クーポンを使って、基礎から実践までを学びましょう。
「最短で学ぶReactとReduxの基礎から実践まで」10%OFFクーポン

UdemyでReactとReduxの動画講座を公開しています。
このブログの読者限定クーポンを使って、基礎から実践までを学びましょう。