Debian StretchのBOXファイルを作成する

Debian Stretchが2017年6月17日にリリースされました。早速BOXファイルを作成してみましょう。

1. Virtual BoxにDebianをインストールする。

Virtual BOXにベースとなるDebian Stretchをインストールします。インストール時に注意することは以下となります。

  • 初期ユーザとして、vagrantユーザを作成する。パスワードは"vagrant"にする。
  • sshdをインストールする

2. 新しく作成した仮想マシンにログイン

新しく作成した仮想マシンにrootユーザでログインします。

3. sudo/curlをインストー

sudo/curlをインストールします。

root@debian:~# apt install sudo curl

4. sudoの設定

vagrantユーザがsudoできるようにします。 まず、visudoコマンドを実行します。

root@debian:~# visudo

以下の行を追加して保存&終了します。

vagrant ALL=(ALL)     NOPASSWD: ALL

4. sshキーのインストー

vagrantユーザのsshキーをインストールします。

一旦ログアウトし、vagrant ユーザでログインし、以下のコマンドを実行します。 やっていることは、vagrantユーザの公開鍵をインストールしています。これをしないと、vagrant仮想マシンにログインして仮想マシンの制御を行えません。

vagrant@debian:~$ mkdir .ssh
vagrant@debian:~$ chmod 0700 ~/.ssh
vagrant@debian:~$ curl -k -L -o ~/.ssh/authorized_keys  https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub
vagrant@debian:~$ chmod 0600 ~/.ssh/authorized_keys

5. VirtualBox の Guest Additions をインストー

VirtualBoxのGuest Addtionsをインストールします。

Virtual BoxのGuest Addtionsをマウント

Virtual Boxで、インストールした現在準備中の仮想マシンウインドウを選択し、「デバイス」メニューから、「Guest Additions CDイメージの挿入」を選択します。こうすると、Guest AddtionsのCDが選択された仮想マシンに挿入されます。

CDのマウント

以下のようにしてVirtual Box Guest AddtionsのCDをマウントします。

root@debian:~#  mount -t iso9660 /dev/cdrom /mnt

Guest Addtionsをセットアップ

以下のコマンドでセットアップします。

root@debian:~# apt-get install build-essential module-assistant dkms
root@debian:~# /mnt/VBoxLinuxAdditions.run

その他セットアップ

以上で必要最小限のセットアップはできました。お好みでboxファイルに含めておきたい追加のセットアップをしておきます。

OSを終了

セットアップが終了したらOSを終了します。

root@debian:~# shutdown -h now

BOXファイルの作成

ホストマシン上でBOXファイルを作成ます。 以下コマンドを実行します。 “Debian-stretch"の部分は、Virtual Boxの仮想マシン名です。

$ vagrant package --base Debian-stretch

作成したBOXファイルを登録

作成したBOXファイルをVagrantが使えるように登録します。

vagrant box add yakubouzu/debian-stretch package.box

追加後、一覧を表すると登録したBOXが表示されるはずです。

$ vagrant box list
yakubouzu/debian-stretch (virtualbox, 0)

試しに起動

作ったBOXファイルを使ってvagrant仮想マシンを作成してみます。

まずは設定ファイルであるVagrantfileの作成をvagrant initコマンドで行います。

$ vagrant init yakubouzu/debian-stretch
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.

作成できたら仮想マシンを起動。

$ vagrant up

無事エラーが表示されず起動すればOKです。