LoginSignup
18
18

More than 5 years have passed since last update.

Debian8のVagrantのboxを作りたい

Last updated at Posted at 2015-02-02

そろそろ jessie(Debian8) の足音が聞こえたきたので Vagrant の box が欲しいなぁと思いました.ということで作りましょう.

VirtualBox準備

いい感じに jessie をインストールします.注意点を適当に箇条書きします.

  • Debian -- Debian インストーラ
    • netinst CD イメージをダウンロードして使う
  • NAT でポートフォワーディングで 22 番ポートをどこかにフォワーディングしておくとあとですぐに ssh 出来て便利(デフォルトは10.0.2.15のIPを持つ)
  • USBとかオーディオとか必要ないので無効にした方が良さそう
  • ハードドライブはVDIで可変サイズで作る

jessieをインストールする際の注意点

  • root のパスワードは vagrant
  • ここでユーザー vagrant パスワード vagrant でユーザーを作る
  • apt のミラーは日本のものを選択
  • SSH Server と Standard system utilities だけインストール

これでインストールが終わったら色々やることがあります.

jessieインストール後の作業

  • VirtualBox Guest Additionsをインストールするために依存パッケージを幾つか入れる
    • linux-headers-$(uname -r) build-essential
  • vagrant ユーザーをパスワード無しで root になれるように
    • 色々あるが sudo グループに追加して /etc/sudoers を編集
  • /etc/ssh/sshd_configUseDNS no を追加
  • 起動の度に GRUB のタイムアウトを待つのはつらいので GRUB の設定変更
  • vagrant 用の鍵を設定
  • apt で contrib non-free もインストールできるように
  • VirtualBox Guest Additions をインストールする

ハマったのは jessie から systemd が採用になった関係で VirtualBox Guest Additions は apt でインストールすると古いのが入ってうまく起動できませんでした.virtualboxの使用するバージョンを新しいものにして最新のものをインストールすれば大丈夫のようです.

ということで catatsuy/vagrant_debian を作りました.
今のスクリプトを貼っておきます.

jessie.sh
#!/bin/bash -xe

virtualbox_ver=4.3.20

apt-get -y install linux-headers-$(uname -r) build-essential
apt-get -y install zlib1g-dev libssl-dev libreadline-gplv2-dev
apt-get -y install sudo

usermod -a -G sudo vagrant
sed -e "s/^%sudo\tALL=(ALL:ALL) ALL/%sudo\tALL=(ALL) NOPASSWD:ALL/g" /etc/sudoers > /etc/sudoers.new
chown root:root /etc/sudoers.new
chmod 0440 /etc/sudoers.new
mv /etc/sudoers.new /etc/sudoers

echo 'UseDNS no' >> /etc/ssh/sshd_config

# Remove 5s grub timeout to speed up booting
cat <<EOF > /etc/default/grub
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
GRUB_DEFAULT=0
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX="debian-installer=en_US"
EOF

update-grub

mkdir -pm 700 /home/vagrant/.ssh
wget -O /home/vagrant/.ssh/authorized_keys \
  'https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub'
chmod 0600 /home/vagrant/.ssh/authorized_keys
chown -R vagrant:vagrant /home/vagrant/.ssh

apt-get -y install nfs-common

sed -e "/^[ \t]*deb[ \t-]/ s/[ \t]contrib//g" \
-e "/^[ \t]*deb[ \t-]/ s/[ \t]non-free//g" \
-e "/^[ \t]*deb[ \t-]/ s/[ \t]main/ main contrib non-free /g" \
"/etc/apt/sources.list" > "/etc/apt/sources.list.new"
mv /etc/apt/sources.list.new /etc/apt/sources.list

# Install the VirtualBox guest additions
wget http://download.virtualbox.org/virtualbox/${virtualbox_ver}/VBoxGuestAdditions_${virtualbox_ver}.iso
mkdir /media/VBoxGuestAdditions
mount -o loop,ro VBoxGuestAdditions_${virtualbox_ver}.iso /media/VBoxGuestAdditions
sh /media/VBoxGuestAdditions/VBoxLinuxAdditions.run
rm VBoxGuestAdditions_${virtualbox_ver}.iso
umount /media/VBoxGuestAdditions
rmdir /media/VBoxGuestAdditions

# Start the newly build driver
service vboxadd start

# delete the cache of apt
rm -rf /var/cache/apt/archives/*
rm -rf /var/lib/apt/lists/*

こうすると jessie の VM ができます.

VirtualBoxのVMからpackage.boxを作る

vagrant package --base jessie

最後の jessie は VirtualBox 上で付けた名前を付けます.

これで来る jessie 時代も恐くない!!

18
18
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
18