前回のブログで、Ubuntuをインストールしたところまでが終わった状態になっています。
この後vagrantで使用するために必要な作業としては以下があります。
- sudoの設定
- vagrantの公開鍵を設定
- SSHサービスの設定
順を追って説明を書いていきます。
まずは、1. sudoの設定 についてです。
vagrantで使用していると、デフォルトのvagrantユーザの場合は
$ su root
とすることで、パスワードなしでrootに変更できるようになっていると思います。そのために以下の設定を行います。VirtualBoxの仮想マシンを起動して、コンソールからインストール時に作成したvagrantアカウントでログインします。ログイン後、以下コマンドを実行します。
$ echo "vagrant ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/vagrant
次に、2. vagrantの公開鍵を設定 についてです。
vagrantでSSHできるようにするため、vagrant の公開鍵をあらかじめ登録しておく必要があります。以下コマンドで取得します。
$ curl -L https://raw.githubusercontent.com/hashicorp/vagrant/main/keys/vagrant.pub -o /home/vagrant/.ssh/authorized_keys
デフォルトで .ssh ディレクトリ(700)と authorized_keys(600) のパーミッションは以下のように設定されていると思います。これであれば問題ありません。異なっていた場合は、chmod コマンドでそれぞれ変更します。
vagrant@ubuntu-server:~$ ls -la
total 28
drwxr-x--- 4 vagrant vagrant 4096 Apr 18 07:12 ./
drwxr-xr-x 3 root root 4096 Apr 18 07:08 ../
-rw-r--r-- 1 vagrant vagrant 220 Mar 31 2024 .bash_logout
-rw-r--r-- 1 vagrant vagrant 3771 Mar 31 2024 .bashrc
drwx------ 2 vagrant vagrant 4096 Apr 18 07:10 .cache/
-rw-r--r-- 1 vagrant vagrant 807 Mar 31 2024 .profile
drwx------ 2 vagrant vagrant 4096 Apr 18 07:08 .ssh/
vagrant@ubuntu-server:~$ cd .ssh
vagrant@ubuntu-server:~$ ls -la
total 12
drwx------ 2 vagrant vagrant 4096 Apr 18 07:08 ./
drwxr-x--- 4 vagrant vagrant 4096 Apr 18 07:12 ../
-rw------- 1 vagrant vagrant 518 Apr 18 07:14 authorized_keys
vagrant@ubuntu-server:~$
続いて、3. SSHサービスの設定 です。
vagrantでSSHできるようにSSHサービスを有効化しておきます。以下コマンドになります。
$ sudo su -
# systemctl status ssh
# systemctl start ssh
# systemctl enable ssh
ここまで行ったら、VirtualBoxのコンソールを閉じて仮想マシンをシャットダウンします。以下コマンドで実行されます。
# shutdown -h now
仮想マシンがシャットダウンできたら、vagrantのpackageコマンドでBoxファイルを作成します。今度はクライアントPCのターミナルで以下を実行します。
$ VBoxManage list vms
"aaaaaaaa_default_1735198557123_10853" {51f924dd-9dc8-4ce0-b4fa-35653c92a668}
"bbbbbbbb_default_1736474010351_96640" {d8dfdf02-9fa2-450d-aad2-7a3dcb442155}
"ccccccccc_default_1737431881191_22225" {daa21355-0d1c-4a26-ac1c-29ad0f09d300}
"dddddddd_default_1738293353059_13538" {aede872c-89f1-4f4c-82c8-14fd04a5b965}
"eeeeeeee_default_1738905731641_60734" {0ae2da73-e40d-44d4-bd86-6a3207bb85f9}
"ffffffff_default_1740131882310_92174" {2323cecf-8e30-46bc-aa8a-68ceae78ab1a}
"gggggggg_default_1740725919938_67124" {e9151e2f-3acd-4b76-8e14-4c5da8b0196b}
"hhhhhhhh_default_1741347776043_73129" {a23df3a8-ca7b-445d-bb8a-6dc01fde5b79}
"iiiiiiii_default_1741944581372_96326" {487fac08-45a4-476a-a46b-5501926e0c60}
"jjjjjjjj_default_1742372477960_50064" {8c847cca-a173-4465-adbe-646c07962004}
"kkkkkkkk_default_1742556184823_72972" {1671d1a8-93f0-4e89-98c3-63657272c0fa}
"llllllll_default_1744084505373_15684" {9df20837-1fb8-4b31-894a-92637502c6d5}
"mmmmmmmm_default_1745491880082_12273" {7f4cdf10-d244-4b20-a244-c2198590b63c}
"nnnnnnnn_default_1745821522334_30912" {5ef0d72e-8dfb-4d31-997d-771fff5c2c5c}
$ vagrant package --base nnnnnnnn_default_1745821522334_30912 --output ubuntu.box
==> nnnnnnnn_default_1745821522334_30912: Clearing any previously set forwarded ports...
==> nnnnnnnn_default_1745821522334_30912: Exporting VM...
==> nnnnnnnn_default_1745821522334_30912: Compressing package to: /Users/xxxxx/ubuntu.box
$
Vboxmanage コマンドでVMの一覧を表示しています。今回作成したVM名を確認して、vagrant package コマンドでBoxファイル(ubuntu.box)を作成しています。
これで終了・・・と思ったのですが、作成してみたところ、だいぶファイルサイズが大きいことに気づきました。自分が作成した際には、2.25GBでした。うーん、でかい。
ちなみに過去バージョンのUbuntuのBoxや他のディストリビューションのBoxの容量一覧は以下の通りです。
ディストリビューション | Boxファイルの容量 |
Almalinux V8.10 | 1.11GB |
Almalinux V9.4 | 1.04GB |
RockyLinux V9.4 | 1.24GB |
Ubuntu 22.04 LTS | 627.9MB |
Ubuntu 20.04 LTS | 595.2MB |
Ubuntu 18.04 LTS | 372.9MB |
自分の作ったものと比較すると(OSバージョンによりファイル容量も異なるとはいえ)だいぶ小さいですね。手持ちで保管しておこうと思った場合に、数が増えてくると気になってきます。小さくする方法はないものかと思い、調べてみたところ、いくつかのアプローチがあったので試して比較をしてみようと思います。
またちょっと長くなってきたので、続きは次回です。