2019年5月29日 星期三

[經驗分享]解決 Proxmox VE 變更 IP 後 Banner 沒有同步異動問題


Proxmox VE 安裝完成後,會在本機主控台上顯示一組 IP,只要找一台有瀏覽器的電腦即可登入這台 PVE 主機做完全的管理。

不過,若您有變更過 PVE 節點的 IP,可能會發現本機主控台上顯示的登入 IP 沒有同步異動,該怎麼辦呢?







變更網路設定

如同本文第一張圖,安裝完成後會在本機主控台顯示一組管理用的 IP。

一般來說,我們會儘量避免修改 PVE 節點的 IP,但在某些使用情況下確實有修改的必要,因此我們可以到 [Node 節點] > [Network 網路] > [Edit 編輯],在這裡修改使用的 IP,通常是修改 vmbr0 這張 Bridge 介面的 IP。

在範例中,我們將他由 192.168.1.116 修改為 192.168.1.166

變更節點使用 IP



當修改完成並重開機之後,確實可以使用了新的 IP 192.168.1.166 連上管理介面。

使用新設定的 IP 登入管理介面



可是...... 在本機查看時,卻發現開機後的 Banner 仍然為舊的 IP 192.168.1.116

本機主控台 Banner 仍為舊 IP



如果是自己管理還好,若是多人一起管理這些 PVE 主機,將可能造成使用上的困擾,那該怎麼解決呢?








嘗試修改設定

若您對於 Linux 很熟悉,第一個念頭肯定會想到這個 Banner 設定在 /etc/issue 裡,從而手動修改這個檔案內容 IP 為新的 192.168.1.166

手動修改 issue 檔案裡的 IP


很可惜,這是錯誤的作法,當您重新開機以後,Banner 仍然會顯示為舊的 IP。



再來,若您對 PVE 相關的 CLI 相當熟悉,可能會想到有一支 pvebanner 它是用來更新 banner 內容的,所以手動執行它一次,希望他能夠把 Banner IP 改成新的。



然而,這依然是錯誤的作法,執行以後您會發現根本沒有任何改變。







正確修改設定

到底該怎麼做才能正確的讓 Banner 顯示正確 IP?重點在於 /etc/hosts 這個本機用的域名解析檔案。

在 PVE 的 WebUI 上可以直接修改這部份的設定,請在 WebUI 上點選 [Node 節點] > [Hosts 主機]。

修改本機 hosts 檔案


在這裡可以看到,原來先前只改了網路介面上的設定,hosts 的內容沒有一起修改。

而 pvebanner 是一個開機會啟動的執行檔,在這個執行檔會在 tty 載入完成以後執行,執行後會主動去解析 hosts 裡這個節點名稱所對應的 IP,再將這個 IP 寫到 Banner 上所致。

註:等待 tty 載入完成的相關設定在 /etc/systemd/system/getty.target.wants/pvebanner.service


pvebanner 程式碼


從上圖就可以知道,為什麼我們手動修改 /etc/issue 後,下次開機仍然顯示為舊 IP 的真正原因。

正確修改 hosts 後 Banner 顯示新 IP


所以,只要正確的將 /etc/hosts 裡面的舊 IP 192.168.1.116 修改為正確的新 IP 192.168.1.166,下次開機時即可在 Banner 顯示正確的資訊。





結論

這個問題很常被問到,許多人會認為這是 Bug,但其實不然,是變更 IP 的人少做了該做的設定。