Vagrant (1.0 系) のベースBOX作成手順 (Debian wheezy)
Vagrant のベースBOX 作成手順をネットで探すとたいていの場合、 veewee を使用していますが、無理に使用する必要はありません。
全自動化できれば便利ではあるのですが、個人的には手作業で作成するほうが手軽で気に入っています。
http://d.hatena.ne.jp/okinaka/20110805/1312474847
で一連の流れはつかめていましたが、Debian wheezy リリースに伴い、Vagrant のベースBOX を久々におさらいしてみました。
なお Vagrant のバージョンは、1.0.7 です。(1.2 系はまだ試していません。)
VirtualBox の画面から仮想マシンの新規作成
名前 | debian-wheezy |
---|---|
OS | Linux |
バージョン | Debian(64bit) |
メインメモリ | 512 MB |
チップセット | PIIX3 |
オーディオ | 無効 |
USB | 無効 |
ネットワーク | NAT |
ストレージ(HDD) | 80GB (動的拡張VMDK形式) |
ストレージ(CDROM) | インストールDVDイメージを割り当て(インストール時のみ) |
ストレージのコントローラの設定で、「ホストのI/Oキャッシュを使う」にチェックを入れると、アクセスが格段に速くなります。物理ディスクには非同期に書き込まれることになるので、信頼性は落ちますが、テスト環境構築が目的なのでパフォーマンスを優先します。
インストール後の作業
root でログインして、Vagrant 仕様にセットアップします。
パッケージ更新
今回はネットワークインストール版を使用したので、最新の状態になっているため不要でした。
ビルド用パッケージ
Chef や VirtualBox Guest Addition インストールのために必要なパッケージをインストール。
$ apt-get install curl ruby ruby-dev build-essential linux-headers-amd64
Chef
Chef のインストール。今回は、chef10.x 系を利用したかったためバージョンを指定しています。
$ gem install -v 10.26.0 chef --no-ri --no-rdoc
Guest Addition
VirtualBox の [デバイス]-[GuestAdditionインストール]を選択する。
GuestAddition のインストール
$ mount /dev/cdrom /mnt $ bash /mnt/VBoxLinuxAdditions.run
パッケージ削除
VMサイズ削減のため、可能な限り不要なパッケージは削除します。
sudo
パスワードなしで sudo できるようにします。
コマンド:
$ visudo
設定内容:
%sudo ALL=(ALL) NOPASSWD:ALL
openssh
openssh サーバの設定を変更。ログイン時間が短縮されるらしいです。
$ echo 'UseDNS no' >> /etc/ssh/sshd_config
vagrant ユーザ
vagrant ユーザに、sudo 権限を付加、ssh 公開鍵認証でログインできるようにします。
$ gpasswd -a vagrant sudo $ 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