VagrantでオリジナルBox作成 Ubuntu22.04編
はじめに
久しぶりにVabrantのBoxを更新する。
前回の「20.04 LTS」の作成手順をベースに「22.04 LTS」のBOXを作成する。
準備
各アプリのバージョンは以下の通り。
# | 名称 | バージョン |
---|---|---|
1 | VirtualBox | 6.1.36 r152435(Qt5.6.2) |
2 | VirtualBox_Extension_Pack | 6.1.36 |
3 | Vagrant | 2.3.0 |
4 | Ubuntu Server LTS | 22.04.1 LTS |
仮想マシンの新規作成
以下の設定値で、仮想マシンを新規作成する。
項目 | 設定値 | 備考 |
---|---|---|
名前 | ubuntu22.04.1_r1_6136 | 自由に |
タイプ | Linux | |
バージョン | Ubuntu(64-bit) | |
メモリ | 2048 | 適宜変更 |
ハードディスク | 仮想ハードディスクを作成する | |
ファイルの場所 | デフォルト 適宜変更 | |
ファイルサイズ | 128GB | 適宜変更 |
ハードディスクのファイルタイプ VDI | 適宜変更 | |
物理ハードディスクにあるストレージ | 可変サイズ | 適宜変更 |
※別途、オーディオを無効化
OSインストール
VMの設定画面>ストレージ>光学ドライブ(空)を選択後、属性よりisoイメージを選択し、VirtualBoxを起動する。
項目 | 設定値 | 備考 |
---|---|---|
言語 | english | |
キーボード | Japanese | |
インストールするベース | Ubuntu Server | |
ネットワーク | Automatic(DHCP) | |
proxy | (空白) | 入力しないが、変更することは可能 |
アーカイブサーバのmirrorアドレス | http://jp.archive.ubuntu.com/ubuntu | |
ファイルシステム | デフォルト値 | |
ユーザ名 | vagrant | 固定 |
ホスト名 | ubuntu | 自由に |
パスワード | vagrant | 固定 |
SSHサーバ | インストール | OpenSSHServer |
その他パッケージ | (選択なし) | 自由に選択 |
インストールするソフトウェア | OpenSSH Server | 必須 |
ネットワークの設定
Teratermでアクセスする為、VirtualBoxのネットワークを変更する。
インストールした「Ubuntu」を選択し、設定メニューを表示する。
NATネットワークのポートフォワーディングルールとして以下を設定する。
1 |
新規追加->ホストポートに2222、ゲストポートに22を入力 |
OSインストール後の設定
コマンドはすべて「sudo -i」でrootとなり実行を行う。
OSの更新
1 2 3 4 |
# 更新 apt update apt dist-upgrade -y # 再起動する |
Vagrant設定
SSHの設定
vagrantで必要なsshの設定を行う。公開鍵が無いとupした場合、エラーになる。
1 2 3 4 5 6 |
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 |
visudo #追加 vagrant ALL=(ALL) NOPASSWD: ALL |
timezoneの設定
1 |
timedatectl set-timezone Asia/Tokyo |
必要に応じて、NTPも設定する。
Extension_Pack
1 |
apt install -y xserver-xorg xserver-xorg-core gcc make perl bzip2 |
VBOXのメニューからデバイス>GusetAdditionsCDの挿入
1 2 3 4 5 6 7 8 |
# CD-ROMのマウント mkdir -p /mnt/cdrom mount /dev/cdrom /mnt/cdrom/ #インストール cd /mnt/cdrom ./VBoxLinuxAdditions.run |
以下の様になれば成功
1 2 3 |
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 |
# 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 |
apt clean apt autoremove |
フラグメント解消
1 2 3 |
dd if=/dev/zero of=/tmp/ZERO bs=1M rm /tmp/ZERO history -c |
BOXの作成と追加
VagrantのBoxを保存するフォルダ内で実行する。
1 2 |
vagrant package --base "ubuntu22.04.1_r1_6136" --output "ubuntu22.04.1_r1_6136.box" vagrant box add --name ubuntu22.04.1_r1_6136 ubuntu22.04.1_r1_6136.box |
BOXの確認
以下のコマンドでBOXが確認できれば完了
1 |
vagrant box list |