評估 Azure 虛擬機器上已啟用 Azure Arc 的伺服器
已啟用 Azure Arc 的伺服器是設計來協助您將內部部署或其他雲端中執行的伺服器連線到 Azure。 一般而言,您不會將 Azure 虛擬機連線到 Azure Arc,因為這些 VM 會原生提供所有相同的功能。 Azure VM 已在 Azure Resource Manager、VM 延伸模組、受控識別和 Azure 原則中表示。 如果您嘗試在 Azure VM 上安裝已啟用 Azure Arc 的伺服器,您會收到錯誤訊息,指出其不受支援。
雖然在生產案例下無法在 Azure VM 上安裝已啟用 Azure Arc 的伺服器,但可以將已啟用 Azure Arc 的伺服器設定為在 Azure VM 上執行,以僅供評估和測試。 本文將逐步引導您準備 Azure VM,以看起來像內部部署伺服器以供測試之用。
注意
本文中的步驟適用裝載於 Azure 雲端中的虛擬機器。 Azure Stack Hub 或 Azure Stack Edge 上執行的虛擬機器不支援已啟用 Azure Arc 的伺服器。
必要條件
- 您的帳戶會指派給虛擬機器參與者角色。
- Azure 虛擬機器正在執行已啟用 Azure Arc 的伺服器支援的作業系統。 如果您沒有 Azure VM,您可以部署簡單的 Windows VM 或簡單的 Ubuntu Linux 18.04 LTS VM。
- 您的 Azure VM 可以對外通訊,以下載 Azure Connected Machine Agent 套件,Windows 版從 Microsoft 下載中心,以及 Linux 版從 Microsoft 套件存放庫。 如果對網際網路的輸出連線遵循您的 IT 安全性原則而加以限制,您可以手動下載代理程式套件,並將其複製到 Azure VM 上的資料夾。
- 具有 VM 上提高權限的帳戶 (也就是系統管理員或根帳戶),以及 VM 的 RDP 或 SSH 存取權。
- 若要註冊和管理具有已啟用 Azure Arc 的伺服器的 Azure VM,您必須是資源群組中 Azure Connected Machine 資源管理員或參與者角色的成員。
計畫
若要開始以已啟用 Azure Arc 的伺服器形式管理 Azure VM,您必須先對 Azure VM 進行下列變更,才能安裝和設定已啟用 Azure Arc 的伺服器。
移除部署至 Azure VM 的任何 VM 延伸模組,例如 Azure 監視器代理程式。 雖然已啟用 Azure Arc 的伺服器支援許多與 Azure VM 相同的延伸模組,但 Azure Connected Machine 代理程式無法管理已部署至 VM 的 VM 延伸模組。
停用 Azure Windows 或 Linux 客體代理程式。 Azure VM 客體代理程式的用途與 Azure Connected Machine Agent 類似。 若要避免兩者之間發生衝突,必須停用 Azure VM 代理程式。 停用之後,您無法使用 VM 延伸模組或某些 Azure 服務。
建立安全性規則來拒絕存取 Azure Instance Metadata Service (IMDS)。 IMDS 是 REST API,應用程式可以對其呼叫以取得關於 Azure 中 VM 表示法的資訊,包括其資源識別碼和位置。 IMDS 也提供指派給機器的任何受控識別的存取權。 已啟用 Azure Arc 的伺服器會提供自己的 IMDS 實作,並傳回 VM 的 Azure Arc 表示法相關資訊。 為了避免兩個 IMDS 端點皆可供使用使得應用程式必須在這兩個端點之間選擇的情況,您可以封鎖對 Azure VM IMDS 的存取,讓已啟用 Azure Arc 的伺服器 IMDS 實作是唯一可用的端點。
進行這些變更之後,您的 Azure VM 會像 Azure 外部的任何機器或伺服器一般運作,而且是安裝及評估已啟用 Azure Arc 的伺服器的必要起點。
在 VM 上設定已啟用 Azure Arc 的伺服器時,您會在 Azure 中看到其的兩個呈現。 其中一個是具有 Microsoft.Compute/virtualMachines
資源類型的 Azure VM 資源,另一個則是具有 Microsoft.HybridCompute/machines
資源類型的 Azure Arc 資源。 由於防止從共用實體主機伺服器管理客體作業系統,考量這兩個資源的最佳方式是將 Azure VM 資源視為 VM 的虛擬硬體,讓您控制電源狀態,並檢視其 SKU、網路和儲存體設定的相關資訊。 Azure Arc 資源會管理該 VM 中的客體作業系統,並可用來安裝延伸模組、檢視 Azure 原則的合規性資料,以及完成已啟用 Azure Arc 的伺服器支援的任何其他工作。
重新設定 Azure VM
注意
針對 Windows,設定環境變數以覆寫 Azure VM 安裝上的 ARC。
[System.Environment]::SetEnvironmentVariable("MSFT_ARC_TEST",'true', [System.EnvironmentVariableTarget]::Machine)
針對Linux,設定環境變數以覆寫 Azure VM 安裝上的ARC。
export MSFT_ARC_TEST=true
移除 Azure VM 上的任何 VM 延伸模組。
在 Azure 入口網站中,瀏覽至您的 Azure VM 資源,然後從左側窗格中選取 [延伸模組]。 如果 VM 上已安裝任何延伸模組,請個別選取每個延伸模組,然後選取 [解除安裝]。 等候所有延伸模組解除安裝完畢,再進行步驟 2。
停用 Azure VM 客體代理程式。
若要停用 Azure VM 客體代理程式,請使用遠端桌面連線 (Windows) 或 SSH (Linux) 連線到您的 VM,然後執行下列命令來停用客體代理程式。
若為 Windows,請執行下列 PowerShell 命令:
Set-Service WindowsAzureGuestAgent -StartupType Disabled -Verbose Stop-Service WindowsAzureGuestAgent -Force -Verbose
若為 Linux,請執行下列命令:
sudo systemctl stop walinuxagent sudo systemctl disable walinuxagent
封鎖對 Azure IMDS 端點的存取。
注意
下列設定必須套用至 169.254.169.254 和 169.254.169.253。 這些端點分別用於 Azure 和 Azure Local 中的 IMDS。
在仍然連線至伺服器的情況下,執行下列命令來封鎖對 Azure IMDS 端點的存取。 若為 Windows,請執行下列 PowerShell 命令:
New-NetFirewallRule -Name BlockAzureIMDS -DisplayName "Block access to Azure IMDS" -Enabled True -Profile Any -Direction Outbound -Action Block -RemoteAddress 169.254.169.254
若為 Linux,請參閱散發套件的文件,以取得透過 TCP 連接埠 80 封鎖對
169.254.169.254/32
的輸出存取的最佳方式。 一般而言,您將使用內建防火牆來封鎖輸出存取,但您也可以使用 iptables 或 nftables 來暫時封鎖。如果您的 Azure VM 正在執行 Ubuntu,請執行下列步驟來設定其 Uncomplicated Firewall (UFW):
sudo ufw --force enable sudo ufw deny out from any to 169.254.169.254 sudo ufw default allow incoming
如果您的 Azure VM 執行 Red Hat 或 SUSE Linux Enterprise Server (SLES),請執行下列步驟來設定防火牆:
sudo firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 1 -p tcp -d 169.254.169.254 -j REJECT sudo firewall-cmd --reload
如需其他散發套件,請參閱防火牆文件,或使用下列命令來設定一般的 iptables 規則:
sudo iptables -I OUTPUT 1 -d 169.254.169.254 -j REJECT
注意
除非使用持續性 iptables 解決方案,否則必須在每次重新開機之後設定 iptables 設定。
安裝並設定 Azure Connected Machine 代理程式。
VM 現在已備妥可供您開始評估已啟用 Azure Arc 的伺服器。 若要安裝並設定 Azure Connected Machine 代理程式,請參閱使用 Azure 入口網站連線混合式機器,並遵循步驟來產生安裝指令碼,並使用指令碼方法進行安裝。
注意
如果從您的 Azure VM 對網際網路的輸出連線受到限制,您可以手動下載代理程式套件。 將代理程式套件複製到 Azure VM,並修改已啟用 Azure Arc 的伺服器的安裝指令碼,以參考來源資料夾。
如果您遺漏其中一個步驟,安裝指令碼會偵測到其正在 Azure VM 上執行,並發生錯誤而終止。 驗證您已完成步驟 1-3,然後重新執行指令碼。
驗證與 Azure Arc 的連線
安裝並設定代理程式向已啟用 Azure Arc 的伺服器註冊之後,請前往 Azure 入口網站來驗證伺服器已成功連線。 在 Azure 入口網站中檢視您的電腦。
下一步
了解如何對已啟用 Azure Arc 的伺服器規劃和啟用大量機器,以簡化 Azure 中基本安全性管理和監視功能的設定。
了解可用來簡化其他 Azure 服務 (例如自動化、Key Vault,以及其他 Windows 或 Linux 機器) 部署的我們支援的 Azure VM 延伸模組。