January 7, 2021

最小構成のCLIなCentOS Stream 8にVirtualBoxインストール

WindowsやmacOS、もちろん各種Linuxでも使えるVirtualBoxはGUI操作が一般的だけど、vboxmanageコマンドを駆使すればCLIでも使える。

Vagrantならもっと簡単に使えるけど、そもそもVirtualBoxはGUIのない最小構成のCentOS Stream 8にインストールできるのか?

できましたよ!

更にDockerも追加すると、仮想マシンやコンテナをゴチャゴチャいじってもホストOSは最小限の綺麗なままで済む。


用意するもの

仮想マシンホストとして利用する、CentOS Stream 8を最小構成でセットアップしたマシン。

ホストにするOSの領域と、仮想マシンやコンテナ置き場にする領域でパーティションを分けておくと、ホストOS変えたい病が発症したときも楽。


VirtualBox

インストール

vboxconfig実行に必要なパッケージのインストール

VirtualBox本体のインストール時には依存解決で自動インストールしてくれないので手動インストール

$ sudo yum install -y gcc make perl kernel-devel elfutils-libelf-devel

インストールしていないと、VirtualBox本体のインストール途中にこんなメッセージが出る

This system is currently not set up to build kernel modules.
Please install the gcc make perl packages from your distribution.
Please install the Linux kernel "header" files matching the current kernel
for adding new hardware support to the system.
The distribution packages containing the headers are probably:
    kernel-devel kernel-devel-4.18.0-259.el8.x86_64
This system is currently not set up to build kernel modules.
Please install the gcc make perl packages from your distribution.
Please install the Linux kernel "header" files matching the current kernel
for adding new hardware support to the system.
The distribution packages containing the headers are probably:
    kernel-devel kernel-devel-4.18.0-259.el8.x86_64

There were problems setting up VirtualBox.  To re-start the set-up process, run
  /sbin/vboxconfig
as root.  If your system is using EFI Secure Boot you may need to sign the
kernel modules (vboxdrv, vboxnetflt, vboxnetadp, vboxpci) before you can load
them. Please see your Linux system's documentation for more information.

VirtualBox本体のインストール

公式のダウンロードページからリンクを取得してインストール

$ sudo yum install https://download.virtualbox.org/virtualbox/6.1.16/VirtualBox-6.1-6.1.16_140961_el8-1.x86_64.rpm

本体インストール前にgcc make perl kernel-develをインストールしていなかった場合は、インストール後に手動でsudo /sbin/vboxconfig実行する。

elfutils-libelf-develをインストールしていない場合、vboxconfig実行時にこんなメッセージが出るので、メッセージどおり /var/log/vbox-setup.log を確認して対応する。 sudo yum install -y elfutils-libelf-devel で解消するはず。

$ sudo /sbin/vboxconfig
vboxdrv.sh: Stopping VirtualBox services.
vboxdrv.sh: Starting VirtualBox services.
vboxdrv.sh: Building VirtualBox kernel modules.
vboxdrv.sh: failed: Look at /var/log/vbox-setup.log to find out what went wrong.

There were problems setting up VirtualBox.  To re-start the set-up process, run
  /sbin/vboxconfig
as root.  If your system is using EFI Secure Boot you may need to sign the
kernel modules (vboxdrv, vboxnetflt, vboxnetadp, vboxpci) before you can load
them. Please see your Linux system's documentation for more information.

設定

仮想マシンはそれなりのサイズになるので、大容量パーティションとか外付けHDDに保存先を変えたい場合は以下のコマンド。

$ vboxmanage setproperty machinefolder /path/to/virtualbox-vm-dir/

確認

$ vboxmanage list systemproperties | grep "Default machine folder"
Default machine folder:          /path/to/virtualbox-vm-dir/

Vagrant

インストール

rsyncインストール

$ sudo yum install -y rsync

vagrant本体のインストール時には依存性解決で自動インストールしてくれないけど、いざvagrant upすると以下のメッセージが出るので先にインストールしておく

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
"rsync" could not be found on your PATH. Make sure that rsync
is properly installed on your system and available on the PATH.

Vagrant本体のインストール

公式のダウンロードページからリンクを取得してインストール

sudo yum install https://releases.hashicorp.com/vagrant/2.2.14/vagrant_2.2.14_x86_64.rpm

設定

Boxの保存場所を変更する デフォルトの$HOME/.vagrant.d/からBoxの保存場所を変更する ~/.bash_profileに下記追記

export VAGRANT_HOME=/path/to/vagrant-box-dir/

Docker

インストール

Dockerのインストール

公式手順

リポジトリ追加

$ sudo yum install yum-utils
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

Dockerエンジンのインストール

$ sudo yum install docker-ce docker-ce-cli containerd.io

自動起動有効化と起動

$ sudo systemctl enable docker
$ sudo systemctl start docker

sudoしなくてもログインユーザーでdockerコマンドを打てるようにする

$ sudo systemctl start docker

設定

Dockerイメージも数が増えるとそれなりにストレージを食うので保存場所を変更する。

/etc/docker/daemon.json を作成してdata-rootを指定する。

{
  "data-root": "/path/to/docker-dir"
}

設定反映

$ sudo systemctl restart docker

確認

$ docker info | grep "Docker Root Dir"

Docker Compose

インストール

公式手順

ダウンロードとインストール

$ sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

実行権付与

$ sudo chmod +x /usr/local/bin/docker-compose

確認

$ docker-compose --version

© 2020 nissy-lab.com