以最少的配置創建類似雲端的虛擬機

以最少的配置創建類似雲端的虛擬機

亞馬遜EC2或者其他 雲/IaaS 服務,我可以輕鬆創建一台新機器,無需太多安裝。基本上,我只需選擇 RAM/HDD/CPU 並提供公共 SSH 金鑰,然後在幾秒鐘內獲得一台全新的機器。

如何使用 VirtualBox(或任何其他虛擬化軟體)在本機複製此內容?如果可能的話,我更喜歡一個需要對實際系統進行最少修改的解決方案。

答案1

您可以使用預先建置虛擬機以獲得相同的效果。建立、自訂然後另存為您的基本範本。就像您使用具有首選設定(字體、頁面設定等)的空辦公文件一樣,您可以建立虛擬機(採用任何虛擬化技術),當您需要新執行個體時,您可以輕鬆複製和自訂該虛擬機。多年來,我擁有一個適用於不同版本和風格的 Linux、Windows 和 Macintosh 的基本作業系統庫。

答案2

您可以簡單地創建一個OVF應用程式與 VirtualBox,然後多次導入:

  1. 使用您的所有首選項建立虛擬機器 - 安裝您喜歡的軟體(例如,頂部)並根據您的意願進行配置(例如,啟用無密碼 sudo,設定UseDNS No/etc/ssh/sshd_conf加快登入速度,並在/boot/grub/grub.cfg) 中設定較小的逾時。
  2. 安裝 SSH 伺服器並上傳您的 SSH 金鑰
  3. 在 Linux 上,執行sudo rm -rf /etc/udev/rules.d/以刪除持久網路名稱關聯(否則,您必須重新配置網路)。
  4. 關閉電腦(您可能需要先刪除一些快取以減少電腦大小)。
  5. 透過 GUI 使用“檔案”->“匯出設備”或使用VBoxManage export VM_NAME -o ./myvm.ova

現在,您可以根據需要多次匯入已建立的 ova 檔案(使用「檔案」->「匯入應用程式」或VBoxManage import。每次執行此操作時,VirtualBox 都會產生一個新的 VM 名稱,並允許您變更基本參數(CPU、RAM 大小、附加磁碟等)。

但是,您必須手動編輯 ssh 連接埠轉送規則。您可以使用以下腳本輕鬆地做到這一點:

OVA=vm.ova # Change this to the name of your ova file
VM_NAME=$(VBoxManage import "$OVA" | sed -n 's#.*VM name "\(.*\)".*#\1#p')
sshport=$(python -c 'import random;print(random.randint(1025,65535))')
VBoxManage modifyvm $VM_NAME --natpf1 ssh,tcp,127.0.0.1,$sshport,,22
/bin/echo -e "\nHost vbox-$VM_NAME\n\tHostName localhost\n\tPort $sshport\n" \
          >>~/.ssh/config
echo "Start the VM with    VBoxManage startvm $VM_NAME"
echo "Then, type   ssh vbox-$VM_NAME   to log in to your VM"

現在您可以使用 ssh 進入機器ssh vbox-$VM_NAME。如果要部署機器,必須手動更改更改 SSH 伺服器金鑰

除了匯出和匯入之外,您還可以複製現有機器。

相關內容