Vagrant のベースBOX作成手順 (Scientific Linux 6.1)
Scientific Linux 6.1 のベース BOX を自分で作成してみた。
http://docs-v1.vagrantup.com/v1/docs/base_boxes.html
まずは VirtualBox 上で VM を作成する。そして、vagrant package コマンドでパッケージ化する。
以下から、最新のインストールDVDイメージをダウンロードしてくる。
http://www.scientificlinux.org/
VirtualBox の画面から仮想マシンの新規作成
名前 | vagrant-sl6 |
---|---|
OS | Linux |
バージョン | RedHat |
メインメモリ | 512 MB |
チップセット | PIIX3 |
オーディオ | 無効 |
USB | 無効 |
ネットワーク | NAT |
ストレージ(HDD) | 80GB (動的拡張VMDK形式) |
ストレージ(CDROM) | インストールDVDイメージを割り当て(インストール時のみ) |
チップセットをICH9 にすると、なぜかパッケージ化がうまくいかなかった。また、ベース BOX をコンパクトにするためHDDは VMDK 形式で作成してみた。それ以外の形式では試したことはない。
仮想マシンに Scientific Linux 6.1 インストール
インストール後の作業
root でログインして、Vagrant 仕様にセットアップする。
ビルド用パッケージ
Chef や VirtualBox Guest Addition インストールのために必要なパッケージをインストール。
$ yum install ruby ruby-devel gcc gcc-c++ automake autoconf make rubygems kernel-devel
Chef
Chef のインストール
$ gem install chef --no-ri --no-rdoc
Guest Addition
VirtualBox の [デバイス]-[GuestAdditionインストール]を選択する。
GuestAddition のインストール
$ mount /dev/cdrom /mnt $ sh /mnt/VBoxLinuxAdditions.run
パッケージ削除
VMサイズ削減のため、可能な限り不要なパッケージは削除する。
$ yum remove ruby-devel gcc gcc-c++ automake autoconf make $ yum remove kernel-devel kernel-headers $ yum remove xorg-x11-drv-ati-firmware yum-autoupdate $ yum remove kernel-古いバージョン
yum の管理情報もクリアする
$ yum clear all
sudo
パスワードなしで sudo できるようにする。また、requiretty も無効にする。
コマンド:
$ visudo
設定内容:
# Default requiretty %wheel ALL=(ALL) NOPASSWD:ALL
openssh
openssh サーバの設定を変更。ログイン時間が短縮されるらしい。
$ echo 'UseDNS no' >> /etc/ssh/sshd_config
vagrant ユーザ作成
vagrant ユーザを作成し、sudo 権限を付加、ssh 公開鍵認証でログインできるようにする。パスワードは vagrant。
$ adduser vagrant $ passwd vagrant $ gpasswd -a vagrant wheel $ 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
Vagrant パッケージ化
ホストマシン上でベースBOXのパッケージ化する。
vagrant package --base vagrant-sl6
package.box が生成される。このファイルを配布することになる。
ベースBOX の動作確認
試しに手元で使えるようにしてみる。
vagrant box add sl6 package.box mkdir sl6test cd sl6test vagrant init sl6 vagrant up
これで sl6 が使えるようになった。