はじめに
自宅サーバが古くなってきたので、以下のような構成の新しい自宅サーバを構築していきます。
この自宅サーバを構築するために、全6回に分けて記事を掲載予定であり、今回は2回目の記事となります。
第1回:Ubuntuインストール編
第2回:KVMとCockpitで仮想サーバ構築編 ←この記事
第3回:ApacheとWordpressでWebサーバ構築編
第4回:PostfixとRainloopでメールサーバ構築編
第5回:DNS・DHCPサーバ構築編
第6回:NoderedとMQTTでホームサーバ構築編
番外編:KVM上でのWindows11のインストール編
番外編:KVM上でのUbuntu Serverのインストール編
第2回:KVMとCockpitで仮想サーバ構築編
前回はミニPCにUbuntu 24.4 DesktopをインストールしてホストOSを構築しました。今回の第2回ではKVMとCockpitを導入してWebベースで仮想マシンを簡単に管理できるようにすると共に、WebサーバとHomeサーバの仮想マシンを作成します。
KVMのインストール
それでは早速、前回インストールしたUbuntu 24.4 DesktopへKVMをインストールして設定を行なっていきます。
①必要パッケージのインストール
KVMのインストールは簡単‼️‼️ 以下のapt-getコマンドを入力するだけです。Rootで作業することを忘れないようにしましょう。また、以下のコンソール画面は、#の後が薄くなってしまっていますが、#の後が入力するコマンドですので、ご注意ください。
# su
# apt-get install qemu-kvm libvirt-daemon-system libvirt-clients virt-manager bridge-utils virtinst libosinfo-bin
・・・省略・・・・
②Systemdへの登録
次に、OS起動時にKVMが自動的に起動するように「systemctl enable –now libvirtd」と入力してSystemdに登録を行います。また「systemctl status libvirtd」と入力して状態を確認し、以下のように「active (running) 」となっていればOKです。
# systemctl enable --now libvirtd
# systemctl status libvirtd
● libvirtd.service - libvirt legacy monolithic daemon
Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; preset: enabled)
Active: active (running) since Sat 2024-04-27 16:09:22 JST; 20s ago
TriggeredBy: ● libvirtd-ro.socket
● libvirtd.socket
● libvirtd-admin.socket
Docs: man:libvirtd(8)
https://libvirt.org/
Main PID: 20775 (libvirtd)
Tasks: 22 (limit: 32768)
Memory: 10.7M (peak: 12.5M)
CPU: 388ms
CGroup: /system.slice/libvirtd.service
├─15139 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leas>
├─15140 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leas>
└─20775 /usr/sbin/libvirtd --timeout 120
③ユーザグループへの追加
次に、kvmとlibvirtグループにユーザを追加します。
# usermod -aG kvm $USER
# usermod -aG libvirt $USER
これでKVMのインストールは完了です‼️簡単ですね😀
Cockpitのインストール
ここからはWebベースのGUIでLinuxを簡単に管理できるCockpitをインストールしていきます。Cockpitを用いることで他のPCのWebブラウザを使って、仮想サーバの電源のOn/Offが管理できたり、CPUやネットワークの利用状況が確認できる便利なツールです。
①Cokpitのインストール
それでは、早速Cokpitをインストールしていきます。今回は仮想マシンの管理も行いたいので「cockpit-machines」も併せてインストールします。また「cockpit-podman」はコンテナ管理用のアドオンですが、こちらもついでにインストールしておきます。
# apt-get install cockpit cockpit-machines cockpit-podman
・・・省略・・・
②ファイヤウォールの設定
Cockpitにアクセスするためにファイヤウォールの設定を行います。Cockpitが利用するポート番号はTCPの9090番ポートになります。ちなみにCockpitはLinuxの管理を行う非常に強力なツールであり不正に操作されると大変危険ですので、接続を許可するネットワークを絞ることをお勧めします。以下の例では、192.168.1.0のネットワークからのみ9090ポートへのアクセスを許可しています。
# ufw allow from 192.168.1.0/24 to any port 9090 proto tcp
ルールを追加しました
# ufw status
状態: アクティブ
To Action From
-- ------ ----
10022/tcp ALLOW 192.168.1.0/24
9090/tcp ALLOW 192.168.1.0/24
③Systemdへの登録
CockpitもOS起動時に自動的に起動するようにしておきましょう。こちらも状態を確認して「active (running) 」となっていればOKです。
# systemctl enable cockpit
# systemctl status cockpit
● cockpit.service - Cockpit Web Service
Loaded: loaded (/usr/lib/systemd/system/cockpit.service; static)
Active: active (running) since Tue 2024-04-30 21:30:38 JST; 2h 16min ago
TriggeredBy: ● cockpit.socket
Docs: man:cockpit-ws(8)
Main PID: 15432 (cockpit-tls)
Tasks: 2 (limit: 38148)
Memory: 1.8M (peak: 4.7M)
CPU: 47min 37.987s
CGroup: /system.slice/cockpit.service
└─15432 /usr/lib/cockpit/cockpit-tls
④Cockpitへのアクセス
ここまでできたら「http://<IPアドレス>:9090」にアクセスしてCockpitの画面を表示してみましょう。以下のようなCokpitの画面が表示されればOKです。左側メニューに「仮想マシン」と「Podmanコンテナー」が表示されていることも確認しましょう。
仮想ブリッジの作成
さっそく仮想マシンを構築していきましょう‼️と言いたいところですが、仮想マシンが利用するネットワーク環境を先に作る必要があります。
KVMのデフォルト設定では、以下のように「virbr0」というブリッジが自動で作成され、192.168.122.0という仮想マシン用の独自ネットワークが作成されます。仮想マシンはこの独自のネットワークから192.168.122.1をゲートウェイとしてNAPTを用いて他の機器と通信を行なえます。このため、他の物理PCやネットワーク機器から仮想マシンのIPアドレスは見えず、直接アクセスできない状態になってしまいます。このため、他のPCや機器から仮想マシンへアクセスできるように、DMZ用とLAN用の2つのブリッジを作成します。
①DMZ側ブリッジの追加
Cockpitの左側メニューから「ネットワーキング」を選択し「ブリッジの追加」ボタンをクリックします。
②DMZ側ブリッジの作成
ブリッジの追加の画面が表示されますので、「br-DMZ」など分かりやすい名前をつけ、ポート欄からDMZ側のLANケーブルを指しているネットワークインターフェースを選択し「追加」ボタンをクリックします。なお、この作業を実施すると既存の通信が遮断されブリッジ経由の通信に変更されるため、Cockpitを他のPCからCopilotを操作している場合は注意が必要です。
③DMZ側ブリッジのIPアドレス設定
インタフェース一覧の画面に戻ると既存の「enp44s0」が削除され「br-DMZ」に変更になっているのが確認できます。続いて、作成した「br-DMZ」を選択します。
続いて「IPv4」の部分の「編集」リンクをクリックします。
すると以下のようにIPアドレスやDNSの設定を行う画面が表示されるので、ご自身の環境に合わせて固定IPアドレスを設定しましょう。
また、IPv6の設定が必要な場合はIPv6についても設定しましょう。
④LAN側ブリッジの作成
DMZ側と同じようにLAN側についてもブリッジを作成します。こちらも設定値については、LAN側のネットワーク設計に合わせて設定を行なってください。
以上で仮想ブリッジの作成は完了です。
Webサーバの構築
それでは、仮想サーバとして「WebServer」を作成していきます。Webサーバは、特にGUI環境は必要ないので、Ubuntu 24.4 Serverを利用していきます。
①Ubuntu 24.4 Serverのダウンロード
ホストOSのWebブラウザを用いて、Ubuntuのサイトへアクセスして、Ubuntu 24.4 Serverをダウンロードします。Ubuntu Serverは2.7GB程度なので、Descktopと比較すれば早いです。
②仮想サーバの作成
Cockpitの左側メニューから「仮想マシン」を選択し、右側の画面から「仮想マシンの作成」ボタンをクリックします。
③基本項目の設定
まずは、以下の基本項目を入力します。この画面ではCPUコア数やネットワークインタフェースの設定ができないので、基本項目の入力が終わったら「作成して編集する」ボタンをクリックします。
名前:WebServer ※なんでもOKです
接続:System
インストールタイプ:ローカルインストールメディア
インストールソース:上でダウンロードしたUbuntuServerのISOイメージ保管場所
オペレーティングシステム:※ISOイメージを選択すると自動的に選択される
ストレージ:特に変更なし
ストレージの制限:50GB ※Webサーバならこれぐらい?
メモリ:8GB ※Webサーバならこれぐらい?
ちなみに、Webブラウザでダウンロードした「/home/<ユーザ名>/ダウンロード」を指定したらエラーが出てうまく行かなかったので、私は「/vms/iso-images」というフォルダを作成して、ここにISOイメージを移動させました。
④CPUコア数の変更
CPU 欄の「編集」リンクをクリックして、編集画面を表示させます。
編集画面が表示されたらvCPU最大値とvCPU数をそれぞれ4に設定し「適用」ボタンをクリックします。
⑤ネットワークインターフェースの変更
次に「ネットワークインターフェース」欄にある「編集」ボタンをクリックします。
編集画面が表示されたら、以下のように変更を行い「保存」ボタンをクリックします。
インターフェース形式:Bridge to LAN
ソース:br-DMZ ※上で作成したDMZ用のブリッジ
モデル:デフォルトでもOKかと思いますが、安心のe1000eへ変更
⑥インストールの開始
仮想マシンの設定が完了したら、画面上部にある「インストール」のボタンをクリックします。
仮想マシンが起動するので「コンソール」欄の「展開」ボタンをクリックすると、仮想マシンのコンソールにアクセスできます。
⑦Ubuntu 24.4 serverのインストール
画面の指示に従ってUbuntu 24.4 Serverのインストールを行います。
※Ubuntu 24.4 Serverのインストール方法の記事も近日中に公開予定です。
Homeサーバの構築
Webサーバと同様にしてHomeServerも構築を行います。
①仮想マシンの作成
仮想マシンの一覧画面の「仮想マシンの作成」ボタンをクリックして以下のように基本項目を入力して仮想マシンを作成します。HomeサーバはOAuth2認証などでWebブラウザを使う可能性があるのでUbuntu 24.4 Desktopを利用することにしました。ストレージサイズは50GB、メモリは4GBに設定しています。基本項目の入力したら「作成して編集する」ボタンですね。
②CPU数の変更
こちらも同様にCPU欄の「編集」リンクをクリックしてCPU数を変更しましょう。私は4コアにしました。
③ネットワークインタフェースの設定
ネットワークインターフェースも「編集」ボタンをクリックして変更しましょう。
こちらのNICは「br-DMZ」へ接続します。
④ネットワークインターフェースの追加
また、当記事の冒頭のネットワーク構成図で示した通り、HomeサーバはDMZ側とLAN側の2NIC構成にするので「ネットワークインタフェースの追加」ボタンをクリックします。
ネットワークインタフェースの追加画面が表示されるので、以下のように設定し「br-LAN」に接続しましょう。
「追加する」のボタンをクリックすると、以下のように2つのNICができていることが確認できます。
⑤インストール
それでは、画面上部の「インストール」のボタンをクリックして、Ubuntu 24.4 Desktopをインストールしましょう。
Ubuntu 24.4 Desktopのインストール方法は、ホストOSにインストールした時と同じなので、以下を参照してください。
以上でHomeサーバの構築は完了です。
おわりに
今回は自宅サーバの再構築の第2回目として、ホストOSにKVMをインストールし、Cockpitから管理できるようにしました。また、WebサーバとHomeサーバの仮想サーバを2つ構築しました。次回は、3回目として「ApacheとWordpressでWebサーバ構築編」を書いていきたいと思います。
第1回:Ubuntuインストール編
第2回:KVMとCockpitで仮想サーバ構築編
第3回:ApacheとWordpressでWebサーバ構築編 ←次回
第4回:PostfixとRainloopでメールサーバ構築編
第5回:DNS・DHCPサーバ構築編
第6回:NoderedとMQTTでホームサーバ構築編
番外編:KVM上でのWindows11のインストール編
番外編:KVM上でのUbuntu Serverのインストール編