強化 Linux 映像以移除 Azure 客體代理程式
適用於:✔️ Linux 映像
Azure 支援兩個佈建代理程式 cloud-init 和 Azure Linux 代理程式 (WALA),其構成建立一般化映像的必要條件 (Azure Compute Gallery 或受控映像)。 Azure Linux 代理程式在一個套件中包含「佈建代理程式程式碼」和「延伸模組處理程式碼」。
請務必先了解 VM 遺失的功能,再決定移除 Azure Linux 代理程式。 移除客體代理程式也會移除 Azure Linux 代理程式所列舉的功能。
此「操作說明」會示範從 Linux 映像中移除客體代理程式的步驟。
必要條件
- 如果您沒有 Azure 訂用帳戶,請在開始前建立免費 Azure 帳戶。
- Ubuntu 映像 - 您可以從 Azure Marketplace 中選擇一個映像。
移除 Azure Linux 代理程式並準備一般化的 Linux 映像
建立映像來移除 Azure Linux 代理程式的步驟如下:
下載 Ubuntu 映像。
掛接映像。
依照步驟 2:從 Linux 映像移除 sudo 使用者中的指示掛接映像。
移除 Azure Linux 代理程式
以根使用者身分執行,移除 Azure Linux 代理程式
針對 Ubuntu 18.04+
sudo chroot /mnt/dev/$imagedevice/ apt -y remove walinuxagent
注意
如果您確認不會再次重新安裝 Linux 代理程式,請移除 Azure Linux 代理程式成品,您可以執行下列步驟。
(選擇性) 移除 Azure Linux 代理程式成品。
如果您確認不會再重新安裝 Linux 代理程式,則可執行下列動作,否則請略過此步驟:
針對 Ubuntu 18.04+
sudo chroot /mnt/dev/$imagedevice/ rm -rf /var/lib/walinuxagent sudo chroot /mnt/dev/$imagedevice/ rm -rf /etc/ walinuxagent.conf sudo chroot /mnt/dev/$imagedevice/ rm -rf /var/log/ walinuxagent.log
建立系統服務來佈建 VM。
由於我們正在移除 Azure Linux 代理程式,因此我們需要提供一個機制來報告一切就緒。 將位於此處的 bash 指令碼或 Python 指令碼內容複製到掛接的映像,並讓檔案可執行 (也就是授與檔案 - chmod 的執行權限)。
sudo chmod +x /mnt/dev/$imagedevice/usr/local/azure-provisioning.sh
若要確保使用報告就緒機制,請建立 systemd 服務單位,並將下列內容新增至 /etc/systemd/system (本範例會將單位檔案命名為 azure-provisioning.service)
sudo chroot /mnt/dev/$imagedevice/ systemctl enable azure-provisioning.service
現在映像已一般化,可用來建立 VM。
取消掛接映像。
umount /mnt/dev/$imagedevice
備妥的映像不再包含 Azure Linux 代理程式。
使用備妥的映像來部署機密 VM。
請從建立 Azure 機密 VM 的自訂映像文件中的步驟 4 開始,以部署無代理程式機密 VM。
注意
如果您想要使用自訂映像部署 cvm 縮放比例,請注意,某些與自動調整相關的功能將會受到限制。 手動調整規則會如預期般運作,由於無代理程式自訂映像,自動調整功能將會受到限制。 如需有關佈建代理程式限制的詳細資訊,可以在這裡找到。 或者,您可以瀏覽至 Azure 入口網站上 [計量] 索引標籤,並確認是否相同。