共用方式為


評估 Azure 虛擬機器上已啟用 Azure Arc 的伺服器

警告

本文參考 CentOS,這是接近生命週期結束 (EOL) 狀態的 Linux 發行版本。 請據此考慮您的使用方式和規劃。 如需詳細資訊,請參閱 CentOS 生命週期結束指導

已啟用 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 Arc 的伺服器形式管理 Azure VM,您必須先對 Azure VM 進行下列變更,才能安裝和設定已啟用 Azure Arc 的伺服器。

  1. 移除部署至 Azure VM 的任何 VM 延伸模組,例如 Log Analytics 代理程式。 雖然已啟用 Azure Arc 的伺服器支援許多與 Azure VM 相同的延伸模組,但 Azure Connected Machine 代理程式無法管理已部署至 VM 的 VM 延伸模組。

  2. 停用 Azure Windows 或 Linux 客體代理程式。 Azure VM 客體代理程式的用途與 Azure Connected Machine Agent 類似。 若要避免兩者之間發生衝突,必須停用 Azure VM 代理程式。 停用之後,您無法使用 VM 延伸模組或某些 Azure 服務。

  3. 建立安全性規則來拒絕存取 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)
  1. 移除 Azure VM 上的任何 VM 延伸模組。

    在 Azure 入口網站中,瀏覽至您的 Azure VM 資源,然後從左側窗格中選取 [延伸模組]。 如果 VM 上已安裝任何延伸模組,請個別選取每個延伸模組,然後選取 [解除安裝]。 等候所有延伸模組解除安裝完畢,再進行步驟 2。

  2. 停用 Azure VM 客體代理程式。

    若要停用 Azure VM 客體代理程式,請使用遠端桌面 連線 ion (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
    
  3. 封鎖對 Azure IMDS 端點的存取。

    注意

    下列設定必須套用至 169.254.169.254 和 169.254.169.253。 這些是分別用於 Azure 和 Azure Stack HCI 中 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或 nftable 暫時封鎖它

    如果您的 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 執行 CentOS、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 設定。

  4. 安裝並設定 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 入口網站中檢視您的電腦。

成功的伺服器連線

下一步