はじめに
Ubuntu16.04よりUbuntu18.04を使う機会が増えたため、VagrantのBOXを作成した。
準備
各アプリのバージョンは以下の通り。
# | 名称 | バージョン |
---|---|---|
1 | VirtualBox | 5.2.18-124319 |
2 | VirtualBox_Extension_Pack | 5.2.18 |
3 | Vagrant | 2.1.5 |
4 | Ubuntu Server LTS | 18.04.1 |
仮想マシンの新規作成
以下の設定値で、仮想マシンを新規作成する。
項目 | 設定値 | 備考 |
---|---|---|
名前 | Ubuntu-18.04.1_SV_LTS_5218 | 自由に |
タイプ | Linux | |
バージョン | Ubuntu(64-bit) | |
メモリ | 2048 | 適宜変更 |
ハードディスク | 仮想ハードディスクを作成する | |
ファイルの場所 | デフォルト 適宜変更 | |
ファイルサイズ | 10GB | 適宜変更 |
ハードディスクのファイルタイプ VDI | 適宜変更 | |
物理ハードディスクにあるストレージ | 可変サイズ | 適宜変更 |
※別途、オーディオを無効化
OSインストール
VMの設定画面>ストレージ>光学ドライブ(空)を選択後、属性よりisoイメージを選択し、VirtualBoxを起動する。
項目 | 設定値 | 備考 |
---|---|---|
ホスト名 | ubuntu | 自由に |
ユーザ名 | vagrant | 固定 |
パスワード | vagrant | 固定 |
パーティション | 自動 | LVMは好みで |
homeの暗号化 | NO | しない |
proxy | 未設定 | |
自動アップデート | NO | しない |
インストールするソフトウェア | OpenSSH Server | 必須 |
grub | yes | 更新する |
★standard system utilities
ネットワークの設定
Teratermでアクセスする為、VirtualBoxのネットワークを変更する。
インストールした「Ubuntu」を選択し、設定メニューを表示する。
NATネットワークのポートフォワーディングルールとして以下を設定する。
新規追加->ホストポートに2222、ゲストポートに22を入力
OSインストール後の設定
コマンドはすべて「sudo -i」でrootとなり実行を行う。
OSの更新
# 更新
apt-get update
apt-get upgrade -y
apt-get dist-upgrade -y
# 再起動する
Vagrant設定
SSHの設定
vagrantで必要なsshの設定を行う。公開鍵が無いとupした場合、エラーになる。
mkdir /home/vagrant/.ssh
chmod 700 /home/vagrant/.ssh
cd /home/vagrant/.ssh
curl -k -L -o authorized_keys 'https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub'
chmod 600 /home/vagrant/.ssh/authorized_keys
chown -R vagrant:vagrant /home/vagrant/.ssh
sudoの設定
vagrantユーザがsudoコマンドをパスワードなしで使用できるようにする。
visudo
#追加
vagrant ALL=(ALL) NOPASSWD: ALL
Extension_Pack
apt-get install -y xserver-xorg xserver-xorg-core gcc make perl
VBOXのメニューからデバイス>GusetAdditionsCDの挿入
# CD-ROMのマウント
mkdir -p /mnt/cdrom
mount /dev/cdrom /mnt/cdrom/
#インストール
cd /mnt/cdrom
./VBoxLinuxAdditions.run
以下の様になれば成功
VirtualBox Guest Additions: Building the VirtualBox Guest Additions kernel modules. This may take a while.
VirtualBox Guest Additions: Running kernel modules will not be replaced until the system is restarted
VirtualBox Guest Additions: Starting.
後処理
不要なlinux-imageパッケージの削除
# imageの確認
dpkg -l 'linux-image-*'
# 現在のカーネル確認
uname -r
# 不要なlinux-imageパッケージの一括削除
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
不要なパッケージの削除
apt-get clean
apt-get autoremove
```
#### フラグメント解消
````bash
dd if=/dev/zero of=/tmp/ZERO bs=1M
rm /tmp/ZERO
history -c
BOXの作成と追加
vagrant package --base "Ubuntu-18.04.1_SV_LTS_5218" --output "ubntu180401LTS_5218_r1.box"
vagrant box add --name ubntu180401LTS_5218_r1 ubntu180401LTS_5218_r1.box
BOXの確認
以下のコマンドでBOXが確認できれば完了
vagrant box list