zaki work log

作業ログやら生活ログやらなんやら

[Proxmox VE] PVEホスト名の変更

年末にデスクトップ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ホストを再起動し、それでも問題ないか確認する。

参考


cpがエラーになったのだけは謎