年末にデスクトップPCを衝動的に購入してそれまで使っていたIntel NUC(元ESXi -> win11)がまた余ってしまい、それならProxmoxでクラスタを組んでみるかと思ったので、準備としてホスト名を整理することにした。
平たく言うとデフォルトのpve
でセットアップしてしまったので、安直にpve01
にリネームした。
いくつかつまづきポイントがあったので手順の備忘録。
一言でいうと「ホスト名の変更」は「(シングルノード構成でも)ノード名の変更」と連動するので、そのあたりの調整を行う。
前提
クラスタを組んでいないシングルノード状態のProxmox VE 8.3.2が対象。
概要
hostnamectl set-hostname
でホスト名変更/etc
以下いくつかの定義ファイル内のホスト名を変更- /etc/hosts
- /etc/hostname
- /etc/postfix/main.cf
- /etc/pve/storage.cfg
- VM定義ファイルを移動
作業ログ
ホスト名を変更
これは普通のLinuxでの操作と同様。
root@pve:~# hostnamectl set-hostname pve01 root@pve:~#
ログインしなおすとプロンプトなどが更新される。
root@pve:~# logout Connection to pve closed. zaki@cloud-dev2:~$ ssh root@pve root@pve's password: Linux pve01 6.8.12-4-pve #1 SMP PREEMPT_DYNAMIC PMX 6.8.12-4 (2024-11-06T15:04Z) x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Sun Jan 5 14:34:58 2025 from 192.168.0.16 root@pve01:~#
このコマンド実行によって/etc/hostname
も更新される。
設定ファイル内のホスト名を変更 (hosts, postfix)
/etc/hosts
は2行目に旧ホスト名の定義が記述されているので、これを変更する。
要は新ホスト名でIPアドレスがわかるようにする。
この変更を行わないと、web UIにログインできなくなるらしい。(未確認)
Proxmoxでホスト名またはノード名を変更する #Network - Qiita
あとは内部で動作しているPostfixの定義ファイル(/etc/postfix/main.cf
)のmyhostname
にもホスト名定義があるので変更する。
Renaming a PVE node - Proxmox VE
ノード定義とVM設定 (/etc/pve/nodes)
Proxmoxのノード定義は以下。
nodes
以下のディレクトリがノード名で、VM定義ファイルはさらにqemu-server
ディレクトリ以下。
root@pve01:~# ls -lF /etc/pve/nodes/ total 0 drwxr-xr-x 2 root www-data 0 May 14 2023 pve/ root@pve01:~# ls /etc/pve/nodes/pve01/qemu-server/ 101.conf 116.conf 201.conf 210.conf 303.conf 312.conf 703.conf 709.conf 712.conf 9002.conf 9011.conf 111.conf 119.conf 202.conf 301.conf 310.conf 313.conf 707.conf 710.conf 9000.conf 9003.conf 9020.conf 114.conf 121.conf 203.conf 302.conf 311.conf 702.conf 708.conf 711.conf 9001.conf 9010.conf
念のためノード定義を丸ごとバックアップする。
root@pve01:~# cp -a /etc/pve/nodes/pve node-backup/ root@pve01:~# ls -lF node-backup/ total 4 drwxr-xr-x 6 root www-data 4096 May 14 2023 pve/ root@pve01:~#
ホスト名を変更ししばらく(計ってないが体感で10分近くかかった)待つと、新しいノード名のディレクトリが自動的に生成されるが、VM定義ファイルまでは生成されない。
root@pve01:~# ls -lF /etc/pve/nodes/ total 0 drwxr-xr-x 2 root www-data 0 May 14 2023 pve/ drwxr-xr-x 2 root www-data 0 Jan 5 14:51 pve01/ root@pve01:~# find /etc/pve/nodes/pve01/ /etc/pve/nodes/pve01/ /etc/pve/nodes/pve01/qemu-server /etc/pve/nodes/pve01/lxc
VM定義ファイルを新しいノード以下へコピーすればOKだが、なぜか手元の環境ではcp
がエラーとなった。
root@pve01:~# cp -a /etc/pve/nodes/pve/qemu-server/* /etc/pve/nodes/pve01/qemu-server/ cp: cannot create regular file '/etc/pve/nodes/pve01/qemu-server/101.conf': File exists cp: cannot create regular file '/etc/pve/nodes/pve01/qemu-server/111.conf': File exists cp: cannot create regular file '/etc/pve/nodes/pve01/qemu-server/114.conf': File exists cp: cannot create regular file '/etc/pve/nodes/pve01/qemu-server/116.conf': File exists cp: cannot create regular file '/etc/pve/nodes/pve01/qemu-server/119.conf': File exists cp: cannot create regular file '/etc/pve/nodes/pve01/qemu-server/121.conf': File exists : :
ファイルはないしtouch
もエラーになるので原因不明。途中のパスがsymlinkになってたりもしてないが…
root@pve01:~# cat /etc/pve/nodes/pve01/qemu-server/101.conf cat: /etc/pve/nodes/pve01/qemu-server/101.conf: No such file or directory root@pve01:~# root@pve01:~# touch /etc/pve/nodes/pve01/qemu-server/101.conf touch: cannot touch '/etc/pve/nodes/pve01/qemu-server/101.conf': File exists
正解はmv
だったがこの時点ではわからなかったため、いったんここでリブートした。
起動したら(VM定義ファイルを調整していないため)VMが全て見えない状態になっている。
cp
でなくmv
を使うとVM定義ファイルをあるべきパスへ配置できた。
root@pve01:~# mv /etc/pve/nodes/pve/qemu-server/* /etc/pve/nodes/pve01/qemu-server/ root@pve01:~# root@pve01:~# ls /etc/pve/nodes/pve01/qemu-server/ 101.conf 116.conf 201.conf 210.conf 303.conf 312.conf 703.conf 709.conf 712.conf 9002.conf 9011.conf 111.conf 119.conf 202.conf 301.conf 310.conf 313.conf 707.conf 710.conf 9000.conf 9003.conf 9020.conf 114.conf 121.conf 203.conf 302.conf 311.conf 702.conf 708.conf 711.conf 9001.conf 9010.conf
これでweb UIからVM情報を参照できるようになる。
※ /etc/pve/nodes/pve01
直下のファイルは自動生成されるのでコピー不要。
ストレージ定義
最後(たぶん)にストレージ定義。
ストレージによってはノードに紐づいた情報が定義されているため、該当ストレージ上のVMは情報は見れるが起動ができない。手元ではあとから追加した内蔵ストレージがpve
のままになっていたため、定義ファイルを修正する。
ファイルは/etc/pve/storage.cfg
で、以下のnodes
の箇所を、新しいノード名(ホスト名)に変更する。
lvmthin: S870QVO2TB thinpool S870QVO2TB vgname S870QVO2TB content images,rootdir nodes pve
修正できたらその時点でVMの起動は可能。
念のためProxmoxホストを再起動し、それでも問題ないか確認する。
参考
- Renaming a PVE node - Proxmox VE
- Change hostname Proxmox | Solution
- Proxmox node name change | Proxmox Support Forum
- Proxmoxでホスト名またはノード名を変更する #Network - Qiita
cp
がエラーになったのだけは謎