Proxmoxでホスト名またはノード名を変更する

Proxmoxのweb guiにアクセスできない現象が発生し、これの原因がホスト名の変更が原因だとわかった。
以下に正しいホスト名変更手順を記載する。
# ホスト名の変更
## set-hostname
set-hostnameコマンドを用いて`/etc/hostname`を変更する。
hogehogeには変更したい新しいホスト名を入力すると良い。

```
hostnamectl set-hostname hogehoge
```

## hostsファイルの編集

```
vim /etc/hosts
```
でhostsファイルをの内容を変更する。
hossファイルの2行目、

```
192.168.1.10 pve.local2 pve
```
となっているため、仮にホスト名をhogehogeに変更したいならば

```
192.168.1.10 pve.local2 hogehoge
```
とする。

## 設定の適用
現在起動中のvmが特に無いならば`reboot`コマンドなどを用いて再起動を行うだけで設定は適用される。
だが、起動中のvmがありこれを落としたくない場合や、ダウンタイムを最小にしたい場合は以下コマンドを順に実行し設定を変更する。

```
invoke-rc.d hostname.sh start
invoke-rc.d networking force-reload
invoke-rc.d network-manager force-reload
force-reload
systemctl restart networking.service 
systemctl restart network-online.target 
systemctl restart pveproxy.service
```

# webGUIにログインできない
ここからは、ホスト名を変更したことを原因とするweb guiにアクセスできない不具合のトラブルシューティングを記録している。

## 現象
IPを直接打ってSSHは可能なのだが、WEB GUIにはアクセスできない。
[フローラム](https://forum.proxmox.com/threads/proxmox-ve-6-0-web-gui-not-working.57892/post-266987)によると

```
systemctl status 'pve*'
```
を確認するとよい、とのことだったので確認すると、以下のようにエラーが多く出ていた。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593714/83d9cc03-7502-efa7-d1a3-86dbe263a950.png)
スクリーンショットに完全に全てが写りきらなかったのだが、pve関連で`Active: failed`となりエラーが出ていたサービスは

```
pvestatd.service - PVE Status Daemon
pve-ha-crm.service - PVE Cluster HA Resource Manager Daemon
pve-firewall.service - Proxmox VE firewall
pve-cluster.service - The Proxmox VE cluster filesystem
pvesr.service - Proxmox VE replication runner
pve-ha-lrm.service - PVE Local HA Resource Manager Daemon
pve-guests.service - PVE guests
```
だった。また、`active`なサービスは

```
pvebanner.service - Proxmox VE Login Banner
pvenetcommit.service - Commit Proxmox VE network changes
pve-storage.target - PVE Storage Target
pve-daily-update.timer - Daily PVE download activities
pve-lxc-syscalld.service - Proxmox VE LXC Syscall Daemon
pvesr.timer - Proxmox VE replication runner
pveproxy.service - PVE API Proxy Server
pvefw-logger.service - Proxmox VE firewall logger
pvedaemon.service - PVE API Daemon
```
だった。

## 原因

初期設定ではProxmoxのホスト名は`pve`と設定されている。これを変更する際に`hostnamectl set-hostname hoge`のみ実行してはいけない。set-hostnameを実行したならば必ず`/etc/hostname`も合わせて変更する必要があった。

## 対応

```
vim /etc/hosts
```
でhostsファイルをの内容を変更した。
hossファイルの2行目が

```
192.168.1.10 pve.local2 pve
```
となっているため、仮にホスト名をhogehogeに変更したいならば

```
192.168.1.10 pve.local2 hogehoge
```
とする。
この後にこれらの変更を適用するため

```
invoke-rc.d hostname.sh start
invoke-rc.d networking force-reload
invoke-rc.d network-manager force-reload
force-reload
systemctl restart networking.service 
systemctl restart network-online.target 
systemctl restart pveproxy.service
```
をそれぞれ順に実行したところ、WEB GUIにアクセスできるようになった。

# 参考文献
Redditの投稿。この人のおかげで最近ホスト名を変更したことに気がついた。
https://www.reddit.com/r/Proxmox/comments/fenaln/proxmox_gui_broken_not_sure_where_to_start/fjpgf3h?utm_source=share&utm_medium=web2x&context=3

proxmoxでエラーを確認する方法について書いたproxmoxのフォーラムのやりとり
https://forum.proxmox.com/threads/proxmox-ve-6-0-web-gui-not-working.57892/

proxmoxにおけるノード名の変更について
https://forum.proxmox.com/threads/proxmox-node-name-change.14327/


ホスト名の変更に関するDebianの記事
https://wiki.debian.org/Hostname?action=show&redirect=HowTo%2FChangeHostname