1. Ubuntu 16.04 Serverをインストール
基本的には最小構成のインストールを行い、以下の設定に注意してください。
- ユーザ名はvagrant、passwordもvagrantにする。
- ソフトウェアの選択でOpenSSH Serverは必ずインストールする。
- 後はお好きな構成で。
2. モジュールを最新版にする
インストール後起動したら、OSのモジュールを最新版にする為に以下を実行する。
sudo apt update; sudo apt upgrade
終わったらOSを再起動しておく。
3. vagrantユーザがsudoをパスワード無し使えるようにする
visudoコマンドを実行し、sudoグループのユーザがパスワードなしでsudoを実行できるようにします。
sudo visudo
以下の行を編集します。
%sudo ALL=(ALL:ALL) ALL
以下のようにします。
%sudo ALL=(ALL:ALL) NOPASSWD:ALL
vagrantコマンドがOSにログインして処理を行えるように、vagrantユーザ用のssh公開鍵をインストールします。
以下の操作はvagrantユーザで行ってください。
cd
mkdir .ssh
chmod 0700 .ssh
wget https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub
mv vagrant.pub .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
/etc/ssh/sshd_configを編集し、「UseDNS no」の設定を追加する。この設定は、sshログイン時に接続元のipをDNSで確認する処理を行わないようにします。この設定を行うことにより、DNSに登録されていないサイトからのsshログインの速度が上がります。
sudo vi /etc/ssh/sshd_config
6. VirtualBox Guest Addtionsをインストール
Virtualbox用のイメージの場合は、ローカルホストのディスクにマウント出来るようにするために、VirtualBox Guest Addtionsをインストールします。
Ubuntu Serverの場合は以下コマンドでインストールできます。
sudo apt-get update
sudo apt-get install virtualbox-guest-dkms
デスクトップ版他、最新のものを入れたいときは以下のようにします。
まずは開発のビルドモジュールをインストール。
sudo apt-get install linux-headers-$(uname -r) build-essential dkms
次に、仮想マシンのウィンドウをアクティブにして、VirtualBoxのメニューより、Guest AddtionsのCD-ROMをマウントします。
その後、以下を実行。
sudo mount /dev/cdrom /media/cdrom
sudo sh /media/cdrom/VBoxLinuxAdditions.run
不要なファイルの削除
ディスク容量を減らすために、aptでインストールした時にできたキャッシュファイルを削除します。
sudo apt-get autoremove
不要なカーネルイメージの削除
結構な容量を食うので、不要な古いカーネルイメージも削除します。
以下のコマンドを実行することで、一発で削除できます。
dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge
確認しながらやりたい場合は、まず、古いLinuxのカーネルバージョンを確認します。
ls -l /boot |grep vmlinuz|grep -v `uname -r`
vagrant@ubuntu:/tmp$ ls -l /boot |grep vmlinuz|grep -v `uname -r`
-rw------- 1 root root 7047504 7月 13 10:59 vmlinuz-4.4.0-31-generic
バージョンが分かったら、不要なカーネルイメージを削除します。
sudo apt-get autoremove --purge linux-headers-4.4.0-31-generic
sudo apt-get clean
シャットダウン
packageにするための設定が完了したのでVMをシャットダウンします。
他にお好みで入れておきたいソフトウェア、設定があれば行っておいてください。
sudo shutdown -h now
### vagrantのパッケージを作成
シャットダウンしたら、VirtualBoxのVirtualマシン名を指定してboxを作成します。
以下の例では、Ubuntu1604が先ほどまで設定していたVirtualBoxのVirtualマシン名となります。
vagrant package --base Ubuntu1604
パッケージができたら、boxを登録します。
以下の例では、Ubuntu1604-Serverがbox名となります。
vagrant box add Ubuntu1604-Server package.box
テスト
Vagrantを使って試しに作成してみて、テストしてみましょう。
vagrant init Ubuntu1604-Server
vagrant up
うまく起動できたらOK!