Proxmox Linux 虛擬伺服器重建流程與指令介紹

最近公司的 Server 又 gg 了,來公司這幾年,壞了3,4台也有了吧,真的運氣有點靠背。這次壞的是一台 Auto Build Server, 是架設在 Proxmox 上的這個虛擬化平台,上面運行 Ubuntu 14.04 和 18.04 的 template。

雖然 Auto Build Server 不算非常重要的機器,但要重建也是不免要花一翻時間。於是趁機研究了一下,怎麼樣才能達成自動備援的的功能 (HA, High Availability)。

這篇就先紀錄下 Server 的過程,有機會再介紹一下 HA 的架設方式,但由於用起來感覺不是很妥當,所以也不見得會有文章出來喔。

Proxmox 虛擬化平台

必需說Proxmox這是一家佛心公司,開發出了這麼好的平台。可以提供 Linux Container 和 KVM 的管理,很好的整合這2個虛擬化的管理介面,讓使用者在佈署的時候,大大的提高了便利性。

但該用到指令的機會也不會少,一些錯誤狀況,有時還是得用指令排除。但在 Google 上也都蠻好找的,果然用主流就是資源多。

Container (LXC)是利用核心虛擬化技術,在這個功能下,可以提供和HOST相同的核心版本,但剩餘的部份,可以由使用者自訂。不過通常都是套用廠家提供的不同 Distribution 的模板 (Template),如 Ubuntu 14.04, 20.04, Debian 等等。靠此功能,可以運行舊的系統,讓使用者較無痛的升級較快的硬體。

QEMU 則是硬體等級的虛擬化,像一般 Windows 上的 VMWare。

本文說明的是 LXC 的部份,硬體虛擬化的部份不包含在內。這邊我們使用的是 Proxmox VE 6.4 的版本。當下 (2022/08) 最新的版本是 7.2,但由於其不相容於舊的 14.04 的 Template ,所以才使用 6.4 。

隨著 Proxmox VE 的進版,舊的 Template 便不會再提供,有些可以透過修改前版的 Template 的 繼續沿用,直到你改不動為止…這也是為何本為是使用舊版的原故。

Proxmox 6.4 安裝

使用者可以在 Windows 上安裝 VirtualBox 或 VMWare 來裝 Proxmox, 雖然這樣有2層的虛擬化,會讓效果有點打折,不過這還是比較快的學習管道。用 VMWare 的話,就直接 mount ISO 檔就可以。 如果要安裝到實機上,用 Linux 上的 dd 將檔案寫入 USB,在 Windows 上則可以使用 balenaEtcher 寫入。

安裝時,建議使用 ZFS 的檔案系統,這樣才能充份利用 Proxmox 的功能。單顆硬碟,就選 ZFS RAID0,兩顆硬碟選 ZFS RAID1 (Mirror) 比較保險。

 

 

HOST安裝後設定

當 Proxmox 安裝好後,就可以開始進行設定。由於年紀比較大,我還是習慣以 /etc/rc.local 的檔案來執行開機 script。所以下面先介紹如何建立該 script,並在開機執行.

建立 rc.local

編輯 /etc/rc.local,貼入以下內容

編輯 /etc/systemd/system/rc-local.service

最後執行下面命令,以在啟動時執行 /etc/rc.local

重新開機,以讓設定生效

建立第二個橋接設備

為避免後端虛擬機曝露漏在外界,這邊將虛擬機放置在第2個橋接設備後,以避免遭受網路攻擊。而在HOST 來進行相關的設定,以達到 NAT 的功能,並在稍後設定 VPN,然管理員可以直接操作虛擬機。

pvd–>System–>Network

 

選擇 Create

 

輸入該 Bridge IP

 

創建橋接設備後,可以選重開,以讓其生效。

設定 VPN (PPTP)

如前面所述,後端虛擬機為避免攻擊被放置在了,第2個橋接裝置。這樣外界網路就無法直接存取,這樣同樣也一定程式造成管理者的麻煩。這時,我們可以在HOST上利用 VPN 的功能,讓外接在登入後,可以直接存取虛擬機。

PPTP 是比較舊了,而且聽說有弱點。不過由於是在公司內部使用,應該是還好,好處是可以由 Windows 上直接設定連線。設定的文章可以參考這篇「 Ubuntu 架設 PPTP Server,以 VPN 來防止監聽 」。

這邊僅簡單的敘述其安裝與設定指令

 

編輯 /etc/ppp/chap-secrets

 

編輯 /etc/pptpd.conf

 

編輯 /etc/ppp/pptpd-options

重開機,以讓設定生效

連入虛擬機

設定完上述的 VPN 後,就可以 Windows 建立 VPN 連線。待後續虛擬機架設完成後,就可以直接從 Windows 連入虛擬機。

目前發現只要撥通 VPN,虛擬機就無法上網,若碰到此問題,建議先用安裝好套件後,再進行VPN連線。

WIN10 的設定,有所變更,需要進入控制台來進一步做修改。

WIN10 PPTP 設定

其它設定

關於怎麼創建 LXC 和上傳 template 等基本動作,這邊就不做介紹。使用的2個template,在文末附有下載連結。

安裝 Ubuntu 18.04 LXC

這邊有提供 18.04 的 Template 是怕過了幾年後,過時就下載不到了。創建的過程,為配合本文的設定,使用 vmbr1,當做主要的橋接網路。所以在設定網路的部份,要注意一下。

LXC IP設定

 

 

 

 

 

 

 

 

設定完成後,從網頁的 console 進入,確定能 ping 到 8.8.8.8。這樣就算網路完成了。

套件安裝

接下來的部份,就是純粹個人工作上需要安裝的套件了。

修改 sh 成 bash

不曉得為何 Ubuntu 要以 dash 為預設的 shell ,將其改成 bash。

安裝 Python 套件

由於工作上會用到 Python 來讀取 .xls 的檔案,所以需要安裝 xlrd 這個套件,此套件也會提供本地下載,使用者直接從網路安裝也可以。

新增 user

最後我們Guest Console 新增一個一般 user, 接著從 Teraterm 登入 Host ,再從 Host 登入 Guest,確定一切 ok.

 

安裝 Ubuntu 14.04 LXC虛擬機

Ubutu 14.04 在此時算是蠻舊的系統了,不過為了延用此前的服務。還是得使用,所幸在 Proxmox 6.4 ,這個經修改過的 Template 還能使用。14.04 的 Template 可在此下載。

首先先創建一個 LXC,以 ubuntu-14.04-x86_proxmox6.1.LXC.tar.gz 當做 template。

14.04 的操作,也差不多,IP 的部份即得要和 18.04 隔開。

設定完成後,從網頁的 console 進入,確定能 ping 到 8.8.8.8。這樣就算網路完成了。

套件安裝

接下來的部份,就是純粹個人工作上需要安裝的套件了。

修改 sh 成 bash

不曉得為何 Ubuntu 要以 dash 為預設的 shell ,將其改成 bash。

安裝 Python 套件

由於工作上會用到 Python 來讀取 .xls 的檔案,所以需要安裝 xlrd 這個套件,此套件也會在文末提供連結,使用者直接從網路安裝也可以。

新增 user

最後我們Guest Console 新增一個一般 user, 接著從 Teraterm 登入 Host ,再從 Host 登入 Guest,確定一切 ok.

其它

Proxmox 還有很多 CLI 的指令,這邊列出一個備份用的 CLI 指令,可以讓自己的備份更靈活。

備份指令

備份時,可以排除指定的目錄,這對於超大硬碟算蠻實用的指令,裡面有成千上億的檔案,備份需要相當久,可以備份系統就好。

 

若要指定備份後的的新 rootfs 大小可以在後面用 –rootfs 指定

LXC 管理

分享HOST目錄給GUEST

在 /etc/pve/lxc 裡可以找到 lxc 的設定檔,編輯需要的檔案,在裡面加入要分享的資訊,其方式是利用 mount -o bind。

或是利用 pct set 100 -mp0 /target/test/,mp=/target。實測中似忽用這個比較沒問題,或者至少執行一次

結語

本文算是工作上的一篇紀錄,也提供給讀者一種 server 架設方式。透過 NAT 的方式,可以將真正的 Server 放在後端,避免不必要的攻擊與設定。

附件

14.04 Template

18.04 Template

lxrd Python 套件

Leave a Reply

請輸入答案 14 − 9 =