VagrantでオリジナルBox作成 Ubuntu18.04編
はじめに
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ネットワークのポートフォワーディングルールとして以下を設定する。
1 2 |
新規追加->ホストポートに2222、ゲストポートに22を入力 |
OSインストール後の設定
コマンドはすべて「sudo -i」でrootとなり実行を行う。
OSの更新
1 2 3 4 5 6 |
<br /># 更新 apt-get update apt-get upgrade -y apt-get dist-upgrade -y # 再起動する |
Vagrant設定
SSHの設定
vagrantで必要なsshの設定を行う。公開鍵が無いとupした場合、エラーになる。
1 2 3 4 5 6 7 |
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コマンドをパスワードなしで使用できるようにする。
1 2 3 4 |
visudo #追加 vagrant ALL=(ALL) NOPASSWD: ALL |
Extension_Pack
1 2 |
apt-get install -y xserver-xorg xserver-xorg-core gcc make perl |
VBOXのメニューからデバイス>GusetAdditionsCDの挿入
1 2 3 4 5 6 7 8 9 |
# CD-ROMのマウント mkdir -p /mnt/cdrom mount /dev/cdrom /mnt/cdrom/ #インストール cd /mnt/cdrom ./VBoxLinuxAdditions.run |
以下の様になれば成功
1 2 3 4 |
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パッケージの削除
1 2 3 4 5 6 7 8 9 |
# 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 |
不要なパッケージの削除
1 2 3 4 5 6 7 8 9 10 11 |
apt-get clean apt-get autoremove ``` #### フラグメント解消 ````bash dd if=/dev/zero of=/tmp/ZERO bs=1M rm /tmp/ZERO history -c |
BOXの作成と追加
1 2 3 |
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が確認できれば完了
1 2 |
vagrant box list |