DebianにProxmox VEをインストールする
DebianにProxmox VEをインストールしたので手順を記しておきます。
Proxmox VEにはOSごとインストールするISOイメージが用意されていますが、このインストーラはFDE ( Full Disk Encryption )に対応していません。そこでDebian 12をFDEでインストールし、その上にProxmoxをインストールすることにしました。
手順はInstall Proxmox VE on Debian 12 Bookwormに従いますが、一か所わかりにくい罠がありますのでその点についても説明します。
Debianのインストール
これはインストーラの指示通りに普通に進めてください。私はCUIインストーラを使ってFDEインストールを行いました。GUIは要らないのでデスクトップ環境もインストールしていません。代わりにOpenSSHをインストールしています。
また、別稿『Linuxの暗号化解除をコンソール以外で行うためにClevis-TangとDropbaerを使う』で説明している方法でClevisとDropbearをインストールし、物理コンソールに張り付かなくてもLUKS暗号化ボリュームの暗号を解除できるようにしています。
Proxmox VEのインストール
インストール手順は公式サイトのInstall Proxmox VE on Debian 12 Bookwormに従います。
IPアドレスの固定化
次の項で説明する理由により、ホストのIPアドレスは固定でなければなりません。別稿『Netplanを使ってDebian/UbuntuのIPアドレスを固定にする』の手順に沿ってIPアドレスを固定にしてください。
/etc/hostsの編集
最初に/etc/hostsを編集して、ホスト名からIPアドレスを引けるようにします。実はこの作業こそ私が躓いた部分です。mDNSを使うのだから/etc/hostsをいじる必要などあるまい思っていたのです。しかし、実際にはここを書き換えないとProxmox VEの管理WEBページが表示されません。
ホスト名がfooで、mDNSを使ったドメイン名がfoo.local、IPアドレスがxxx.xxx.xxx.xxxの時、/etc/hostsを次のように変更します。
127.0.0.1 localhost
xxx.xxx.xxx.xxx foo.local foo
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ちなみに/etc/hostsを編集しない場合、systemctl status pveproxy.service
のステータスは以下のようになります。
$ sudo systemctl status pveproxy.service
● pveproxy.service - PVE API Proxy Server
Loaded: loaded (/lib/systemd/system/pveproxy.service; enabled; preset: enabled)
Active: active (running) since Sat 2025-01-25 11:30:30 JST; 1h 22min ago
Process: 5717 ExecStartPre=/usr/bin/pvecm updatecerts --silent (code=exited, status=111)
Process: 5718 ExecStart=/usr/bin/pveproxy start (code=exited, status=0/SUCCESS)
Main PID: 5719 (pveproxy)
Tasks: 4 (limit: 38164)
Memory: 154.5M
CPU: 2min 4.964s
CGroup: /system.slice/pveproxy.service
├─5719 pveproxy
├─9045 "pveproxy worker"
├─9046 "pveproxy worker"
└─9047 "pveproxy worker"
Jan 25 12:52:31 physics pveproxy[5719]: worker 9043 finished
Jan 25 12:52:31 physics pveproxy[5719]: worker 9045 started
Jan 25 12:52:31 physics pveproxy[9044]: worker exit
Jan 25 12:52:31 physics pveproxy[9045]: /etc/pve/local/pve-ssl.key: failed to load local private key (key_file or key) at /u>
Jan 25 12:52:31 physics pveproxy[5719]: worker 9044 finished
Jan 25 12:52:31 physics pveproxy[5719]: starting 2 worker(s)
Jan 25 12:52:31 physics pveproxy[5719]: worker 9046 started
Jan 25 12:52:31 physics pveproxy[5719]: worker 9047 started
Jan 25 12:52:31 physics pveproxy[9046]: /etc/pve/local/pve-ssl.key: failed to load local private key (key_file or key) at /u>
Jan 25 12:52:31 physics pveproxy[9047]: /etc/pve/local/pve-ssl.key: failed to load local private key (key_file or key) at /u>
lines 1-25/25 (END)
/etc/pve/local/pve-ssl.key: failed to load local private key (key_file or key)
というエラーメッセージがわかりにくいです。このエラーが出たときには/etc/hostsを疑ってください。
Proxmox VEリポジトリの設定
最初にProxmox VEのリポジトリを取得します。
su
echo "deb [arch=amd64] http://download.proxmox.com/debian/pve bookworm pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.list
wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg
exit
次にaptを使ってアップデートし、インストール済みバイナリをアップグレードします。
sudo apt update && sudo apt full-upgrade
apt upgrade
ではなくapt full-upgrade
を使うのは、次の節で説明するカーネルの入れ替えがあるからだと思われます。
Proxmox用カーネルの取得と再起動
Proxmox VEは汎用カーネルではなく専用カーネルで動作します。その専用カーネルを取得してインストールします。
sudo apt install proxmox-default-kernel
インストールしたら再起動します。Proxmox VE専用カーネルが使用されます。
sudo reboot
Proxmox VEのインストール
Proxmox VEをインストールします。
sudo apt install proxmox-ve postfix open-iscsi chrony
chronyはNTPパッケージです。Debian 12はデフォルトでNTPクライアントにsystemd-timesyncdを使用します。しかしながら、systemd-timesyncdにはクライアント機能しかありません。VMにNTPサービスを提供するうえでsystemd-timesyncdでは力不足であるため、NTPサーバー機能を持つchronyをインストールします。aptでchronyパッケージをインストールするとsystemd-timesyncdは自動的にディセーブルされます。
postfixはメールを送り出すエージェントプログラムであり、Proxmox VEが通知メッセージの送信を行う際に利用します。postfixの設定には大きなくくりがいくつかあるのですが、とりあえず何を選ぶにしてもあとでsudo dpkg-reconfigure postfix
で変更できますのであまり気にしないで良いでしょう。わからないならとりあえずsmarthostにしておいて後で変更します。
不要なDebianカーネルの削除
Proxmox VE専用のカーネルをインストールしたため、もはや標準カーネルは不要です。削除してしまいます。
sudo apt remove linux-image-amd64 'linux-image-6.1*'
GRUBをアップデートします。
sudo update-grub
os-proberの削除
これはオプションです。他のOSとのデュアルブートのためにOS検出用のos-proberがインストールされています。無用な事故を防ぐために削除してしまいます。
sudo apt remove os-prober
インストール終了
以上でインストールは終わりです。
サーバーの8006番ポートにアクセスするとProxmox VEの管理WEBページ表示され、ログインが促されます。とりあえず中身を覗いてみたい場合は、サーバーのrootアカウントでログインできます。
Discussion