跳至主要内容

建立 VMware vSphere 虛擬機器模板

以可重複且可靠的方式建立虛擬機器通常是一項困難的工作。VMware vSphere 提供了建立單一虛擬機器並將其轉換為模板的功能。該模板可用於建立配置完全相同的虛擬機器。Rancher 利用此功能來建立相同的 RKE/K3s 節點。

為了利用模板建立新的虛擬機器,Rancher 對虛擬機器有一些必須預先安裝的特定需求。在使用這些需求配置虛擬機器後,接下來您需要在建立模板之前準備虛擬機器。最後,準備完成後,虛擬機器可以轉換為模板並移動到內容庫。

需求​

Linux 和 Windows 虛擬機器需要特定的工具才能被 vSphere 節點驅動程式使用。最關鍵的相依性套件是 Linux 的 cloud-init 和 Windows 的 cloudbase-init。這兩者都用於透過配置主機名稱、設定 SSH 存取和預設 Rancher 使用者來佈建虛擬機器。如果需要其他配置,使用者可以根據需要向其中新增更多內容。此外,其他需求列於下方以供參考。

備註

如果您有任何特定的防火牆規則或配置,您需要在建立模板之前將其新增到虛擬機器中。

Linux 相依性套件​

需要在模板上安裝的套件列於下方。這些套件會根據發行版本有稍微不同的名稱;例如,某些發行版本預設會包含這些相依性套件。叢集佈建程式會自動安裝 Kubernetes 所需的相依性套件。下方列出的相依性套件是 Rancher 叢集佈建程式運作所需的(而非 Kubernetes 所需):

  • curl
  • wget
  • git
  • net-tools
  • unzip
  • apparmor-parser
  • ca-certificates
  • cloud-init
  • cloud-guest-utils
  • cloud-image-utils
  • growpart (part of cloud-guest-utils)
  • cloud-initramfs-growroot
  • open-iscsi
  • openssh-server
  • open-vm-tools

Windows 相依性套件​

需要在模板上安裝的套件清單如下:

建立模板​

您可以手動建立虛擬機器,也可以利用其他替代方案來建立虛擬機器。

手動建立​

  1. 按照 VMware 的這些說明手動建立您的虛擬機器。虛擬機器啟動後,您可以手動安裝上述列出的相依性套件,以正確配置虛擬機器供 vSphere 節點驅動程式使用。
  2. 根據您的特定環境和需求進行自訂。
  3. 在建立模板之前繼續進行最終準備。

手動建立的替代方案​

建立虛擬機器的其他替代選項列於下方:

Packer 是一個常用的替代方案。有關其與 vSphere 搭配使用的範例,請參閱此參考資料。

準備您的虛擬機器​

在建立具有所有必需相依性套件(以及任何其他必需項目)的虛擬機器後,您必須執行最關鍵的下一步:準備將虛擬機器轉換為模板。此準備工作將重設關鍵資料,例如虛擬機器主機名稱、IP 位址等,以防止該資訊被帶入新的虛擬機器中。如果您未能執行此步驟,您可能會建立具有相同主機名稱、IP 位址等的虛擬機器。

請注意,Linux 和 Windows 的準備步驟有所不同。

Linux 準備​

下方的命令將重設您的 Linux 虛擬機器:

# Cleaning logs.
if [ -f /var/log/audit/audit.log ]; then
cat /dev/null > /var/log/audit/audit.log
fi
if [ -f /var/log/wtmp ]; then
cat /dev/null > /var/log/wtmp
fi
if [ -f /var/log/lastlog ]; then
cat /dev/null > /var/log/lastlog
fi

# Cleaning udev rules.
if [ -f /etc/udev/rules.d/70-persistent-net.rules ]; then
rm /etc/udev/rules.d/70-persistent-net.rules
fi

# Cleaning the /tmp directories
rm -rf /tmp/*
rm -rf /var/tmp/*

# Cleaning the SSH host keys
rm -f /etc/ssh/ssh_host_*

# Cleaning the machine-id
truncate -s 0 /etc/machine-id
rm /var/lib/dbus/machine-id
ln -s /etc/machine-id /var/lib/dbus/machine-id

# Cleaning the shell history
unset HISTFILE
history -cw
echo > ~/.bash_history
rm -fr /root/.bash_history

# Truncating hostname, hosts, resolv.conf and setting hostname to localhost
truncate -s 0 /etc/{hostname,hosts,resolv.conf}
hostnamectl set-hostname localhost

# Clean cloud-init
cloud-init clean -s -l

Windows 準備​

Windows 有一個名為 sysprep 的公用程式,用於一般化映像檔並重設上述針對 Linux 列出的相同項目。命令如下:

sysprep.exe /generalize /shutdown /oobe

轉換為模板​

  1. 關閉並停止虛擬機器。
  2. 在清單列表中右鍵點擊虛擬機器,然後選擇模板。
  3. 點擊轉換為模板。

結果: 程序完成後,模板將可供使用。

有關將虛擬機器轉換為模板的更多資訊,請參閱 VMware 指南。

移動到內容庫​

Rancher 能夠使用內容庫提供的模板。內容庫在 vSphere 中儲存和管理內容,並且還提供發佈和共享該內容的功能。

下方是一些關於內容庫的實用連結:

其他資源​

以下是可能有用的其他資源清單: