🔧

DebianにProxmox VEをインストールする

2025/02/02に公開

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