管理和維護 連線 機器代理程式

警告

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

在初始部署 Azure 連線 Machine 代理程序之後,您可能需要重新設定代理程式、升級代理程式,或從計算機中移除它。 這些例行維護工作可以手動或透過自動化來完成(這可減少操作錯誤和費用)。 本文說明代理程式的作業層面。 如需命令行參考資訊, 請參閱 azcmagent CLI 檔

安裝特定版本的代理程式

Microsoft 建議使用最新版的 Azure 連線 Machine 代理程式,以獲得最佳體驗。 不過,如果您需要基於任何原因執行舊版的代理程式,您可以遵循這些指示來安裝特定版本的代理程式。

每個版本附註的標題下方提供目前和舊版 Windows 代理程式的連結。 如果您要尋找超過 6 個月的代理程式版本,請查看 版本資訊封存

升級代理程式

Azure 連線 Machine 代理程式會定期更新,以解決 Bug 修正、穩定性增強功能,以及新功能。 Azure Advisor 會識別未使用最新版機器代理程序的資源,並建議您升級至最新版本。 當您選取已啟用 Azure Arc 的伺服器時,它會在 [概觀] 頁面上或透過 Azure 入口網站 存取 Advisor 時顯示橫幅,通知您。

適用於 Windows 和 Linux 的 Azure 連線 Machine 代理程式可以手動或自動升級至最新版本,視您的需求而定。 安裝、升級或卸載 Azure 連線 機器代理程式,將不需要重新啟動伺服器。

下表描述執行代理程式升級所支援的方法:

作業系統 Upgrade 方法
Windows 手動
Microsoft Update
Ubuntu 容易
SUSE Linux Enterprise Server zypper

Windows 代理程式

您可以從下列來源取得適用於 Windows 電腦的最新版 Azure 連線 電腦代理程式:

Microsoft Update 組態

讓 Windows 代理程式保持最新狀態的建議方式是透過 Microsoft Update 自動取得最新版本。 這可讓您利用現有的更新基礎結構(例如 Microsoft Configuration Manager 或 Windows Server Update Services),並使用您的一般 OS 更新排程包含 Azure 連線 機器代理程式更新。

Windows Server 預設不會檢查 Microsoft Update 中的更新。 若要接收 Azure 連線 電腦代理程式的自動更新,您必須在機器上設定 Windows Update 用戶端,以檢查是否有其他 Microsoft 產品。

針對屬於工作組並連線到因特網以檢查更新的 Windows Server,您可以以系統管理員身分在 PowerShell 中執行下列命令來啟用 Microsoft Update:

$ServiceManager = (New-Object -com "Microsoft.Update.ServiceManager")
$ServiceID = "7971f918-a847-4430-9279-4a52d1efe18d"
$ServiceManager.AddService2($ServiceId,7,"")

針對屬於網域並連線到因特網以檢查更新的 Windows Server,您可以使用組策略大規模設定此設定:

  1. 使用可管理組織的組策略物件 (GPO) 帳戶登入伺服器管理所使用的電腦。

  2. 開啟 [群組原則管理主控台]

  3. 展開樹系、網域和組織單位,以為您的新 GPO 選取適當的範圍。 如果您已經有想要修改的 GPO,請跳至步驟 6。

  4. 以滑鼠右鍵按兩下容器,然後選取 [在此網域中建立 GPO],然後在這裡連結...。

  5. 提供原則的名稱,例如「啟用 Microsoft Update」。

  6. 以滑鼠右鍵按兩下原則,然後選取 [ 編輯]。

  7. 流覽至 [計算機設定>] 管理員 [>Windows 元件>] [Windows Update] 範本。

  8. 選取 [設定自動 更新] 設定加以編輯。

  9. 選取 [ 已啟用 ] 單選按鈕,以允許原則生效。

  10. 在 [選項] 區段底部,核取底部其他 Microsoft 產品的安裝更新方塊。

  11. 選取 [確定]。

下次選取範圍中的計算機重新整理其原則時,將會開始檢查 Windows Update 和 Microsoft Update 中的更新。

針對使用 Microsoft Configuration Manager (MECM) 或 Windows Server Update Services (WSUS) 將更新傳遞給其伺服器的組織,您必須設定 WSUS 來同步處理 Azure 連線 的電腦代理程式套件,並核准它們以在伺服器上安裝。 請遵循 Windows Server Update Services 或 MECM 的指引,將下列產品和分類新增至您的設定:

  • 產品名稱:Azure 連線 Ed Machine Agent(選取所有 3 個子選項)
  • 分類:重大 更新、更新

同步處理更新之後,您可以選擇性地將 Azure 連線 Machine Agent 產品新增至您的自動核准規則,讓伺服器自動掌握最新的代理程式軟體。

使用安裝精靈手動升級

  1. 使用具有系統管理許可權的帳戶登入計算機。

  2. 從 下載最新的代理程式安裝程式 https://aka.ms/AzureConnectedMachineAgent

  3. 執行 Azure 連線 edMachineAgent.msi 以啟動安裝精靈。

如果安裝精靈發現舊版的代理程式,它會自動升級。 升級完成時,[安裝精靈] 會自動關閉。

從命令行升級

如果您不熟悉 Windows Installer 套件的命令行選項,請檢閱 Msiexec 標準命令行選項Msiexec 命令行選項

  1. 使用具有系統管理許可權的帳戶登入計算機。

  2. 從 下載最新的代理程式安裝程式 https://aka.ms/AzureConnectedMachineAgent

  3. 若要以無訊息模式升級代理程式,並在資料夾中建立安裝記錄檔 C:\Support\Logs ,請執行下列命令:

    msiexec.exe /i AzureConnectedMachineAgent.msi /qn /l*v "C:\Support\Logs\azcmagentupgradesetup.log"
    

Linux 代理程式

更新 Linux 電腦上的代理程式牽涉到兩個命令:一個命令,以存放庫的最新可用套件清單,以及另一個命令來升級本機套件,來更新本機套件索引。

您可以從 Microsoft 的 套件存放庫下載最新的代理程式套件。

注意

若要升級代理程式,您必須具有 訪問許可權或使用 Sudo 提高許可權的帳戶。

升級Ubuntu上的代理程式

  1. 若要使用存放庫中所做的最新變更來更新本機套件索引,請執行下列命令:

    sudo apt update
    
  2. 若要升級系統,請執行下列命令:

    sudo apt upgrade azcmagent
    

apt 命令的動作,例如安裝和移除套件,都會記錄在記錄檔中/var/log/dpkg.log

升級 Red Hat/CentOS/Oracle Linux/Amazon Linux 上的代理程式

  1. 若要使用存放庫中所做的最新變更來更新本機套件索引,請執行下列命令:

    sudo yum check-update
    
  2. 若要升級系統,請執行下列命令:

    sudo yum update azcmagent
    

yum 命令的動作,例如安裝和移除套件,都會記錄在記錄檔中/var/log/yum.log

升級 SUSE Linux Enterprise 上的代理程式

  1. 若要使用存放庫中所做的最新變更來更新本機套件索引,請執行下列命令:

    sudo zypper refresh
    
  2. 若要升級系統,請執行下列命令:

    sudo zypper update azcmagent
    

zypper 命令的動作,例如安裝和移除套件,都會記錄在記錄檔中/var/log/zypper.log

自動代理程序升級

發行新版本時,Azure 連線 Machine 代理程式不會自動升級本身。 您應該將最新版本的代理程式包含在排程的修補程式週期中。

重新命名已啟用 Azure Arc 的伺服器資源

當您變更連線至已啟用 Azure Arc 的伺服器之 Linux 或 Windows 電腦的名稱時,不會自動辨識新名稱,因為 Azure 中的資源名稱是不可變的。 如同其他 Azure 資源,您必須刪除資源並重新建立資源,才能使用新的名稱。

針對已啟用 Azure Arc 的伺服器,在重新命名機器之前,必須先移除 VM 擴充功能,再繼續:

  1. 稽核電腦上安裝的 VM 擴充功能,並使用 Azure CLIAzure PowerShell 記下其設定。

  2. 拿掉電腦上安裝的任何 VM 擴充功能。 您可以使用 Azure 入口網站、Azure CLIAzure PowerShell 來執行這項操作。

  3. 使用 azcmagent 工具搭配 Disconnect 參數,中斷機器與 Azure Arc 的連線,並刪除 Azure 中的機器資源。 您可以使用互動方式、使用 Microsoft 身 分識別存取令牌,或使用您用來上線的服務主體,或使用 您建立的新服務主體,手動執行此動作。

    將機器與已啟用 Azure Arc 的伺服器中斷連線並不會移除 連線 的電腦代理程式,而且您不需要移除代理程式作為此程式的一部分。

  4. 使用已啟用 Azure Arc 的伺服器重新註冊 連線 機器代理程式。 azcmagent使用 連線 參數執行工具,以完成此步驟。 代理程式預設會使用計算機的目前主機名,但您可以將 參數傳遞 --resource-name 至 connect 命令,以選擇您自己的資源名稱。

  5. 從已啟用 Azure Arc 的伺服器重新部署原本部署至機器的 VM 延伸模組。 如果您使用 Azure 原則定義部署適用於 VM 的 Azure 監視器 (深入解析) 代理程式或 Log Analytics 代理程式,則系統會在下一個評估週期之後重新部署代理程式。

解除安裝代理程式

針對您不想再使用已啟用 Azure Arc 的伺服器來管理的伺服器,請遵循下列步驟,從伺服器移除任何 VM 擴充功能、中斷代理程式連線,以及從伺服器卸載軟體。 請務必完成上述所有步驟,以從您的系統完全移除所有相關的軟體元件。

步驟 1:移除 VM 擴充功能

如果您已將 Azure VM 擴充功能部署至已啟用 Azure Arc 的伺服器,您必須先卸載擴充功能,才能中斷代理程式或卸載軟體。 卸載 Azure 連線 Machine 代理程式不會自動移除擴充功能,而且如果您將伺服器重新連線至 Azure Arc,將無法辨識這些擴充功能。

如需如何識別及移除已啟用 Azure Arc 之伺服器上任何延伸模組的指引,請參閱下列資源:

步驟 2:中斷伺服器與 Azure Arc 的連線

中斷代理程式聯機會刪除伺服器的對應 Azure 資源,並清除代理程式的本機狀態。 若要中斷代理程式的連線,請以系統管理員身分在伺服器上執行 azcmagent disconnect 命令。 系統會提示您使用有權刪除訂用帳戶中資源的 Azure 帳戶登入。 如果資源已在 Azure 中刪除,您必須傳遞額外的旗標以清除本機狀態: azcmagent disconnect --force-local-only

步驟 3a:卸載 Windows 代理程式

下列兩種方法都會移除代理程式,但不會移除計算機上的 C:\Program Files\Azure 連線 edMachineAgent 資料夾。

從 控制台 卸載

請遵循下列步驟,從電腦卸載 Windows 代理程式:

  1. 使用具有系統管理員許可權的帳戶登入計算機。

  2. [控制面板] 中,選取 [ 程式和功能]。

  3. 在 [程式和功能] 中,選取 [Azure 連線 的計算機代理程式],選取 [卸載],然後選取 []。

您也可以直接從代理程式安裝精靈刪除 Windows 代理程式。 執行 Azure 連線 edMachineAgent.msi 安裝程式套件來執行此動作。

從命令列解除安裝

您可以依照下列範例,從命令提示字元或使用自動化方法(例如腳本)手動卸載代理程式。 首先,您需要從操作系統擷取產品代碼,這是應用程式套件主體標識碼的 GUID。 卸載是使用 Msiexec.exe 命令列來執行 - msiexec /x {Product Code}

  1. 開啟註冊表 編輯器 。

  2. 在登錄機碼 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall下,尋找並複製產品名稱 GUID。

  3. 使用 Msiexec 卸載代理程式,如下列範例所示:

    • 從命令列型態:

      msiexec.exe /x {product code GUID} /qn
      
    • 您可以使用 PowerShell 來執行相同的步驟:

      Get-ChildItem -Path HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall | `
      Get-ItemProperty | `
      Where-Object {$_.DisplayName -eq "Azure Connected Machine Agent"} | `
      ForEach-Object {MsiExec.exe /x "$($_.PsChildName)" /qn}
      

步驟 3b:卸載 Linux 代理程式

注意

若要卸載代理程式,您必須具有 訪問許可權或使用sudo提高許可權的帳戶。

用來卸載 Linux 代理程式的命令取決於 Linux 作業系統。

  • 針對Ubuntu,執行下列命令:

    sudo apt purge azcmagent
    
  • 針對 RHEL、CentOS、Oracle Linux 和 Amazon Linux,請執行下列命令:

    sudo yum remove azcmagent
    
  • 針對 SLES,執行下列命令:

    sudo zypper remove azcmagent
    

更新或移除 Proxy 設定

若要將代理程式設定為透過 Proxy 伺服器與服務通訊,或在部署後移除此組態,請使用下列其中一種方法。 請注意,代理程式會使用此案例下的 HTTP 通訊協定來通訊輸出。

從代理程式 1.13 版開始,您可以使用命令或系統環境變數來設定 azcmagent config Proxy 設定。 如果在代理程式組態和系統環境變數中指定 Proxy 伺服器,代理程式組態會優先成為有效的設定。 使用 azcmagent show 來檢視代理程式的有效 Proxy 組態。

注意

已啟用 Azure Arc 的伺服器不支援使用需要驗證的 Proxy 伺服器、TLS(HTTPS) 連線,或 Log Analytics 閘道作為 連線 電腦代理程式的 Proxy。

代理程式特定的 Proxy 組態

代理程式特定的 Proxy 組態可從 Azure 連線 Machine 代理程式 1.13 版開始使用,而且是設定 Proxy 伺服器設定的慣用方式。 此方法可防止 Azure 連線 Machine 代理程式的 Proxy 設定干擾系統上的其他應用程式。

注意

Azure Arc 所部署的延伸模組不會繼承代理程式特定的 Proxy 組態。 如需如何為每個擴充功能設定 Proxy 設定的指引,請參閱您所部署延伸模組的檔。

若要設定代理程式以透過 Proxy 伺服器進行通訊,請執行下列命令:

azcmagent config set proxy.url "http://ProxyServerFQDN:port"

如果您的網路需要,您可以使用IP位址或簡單的主機名來取代 FQDN。 如果您的 Proxy 伺服器在埠 80 上執行,您可能會在結尾省略 “:80”。

若要檢查代理程式設定中是否已設定 Proxy 伺服器 URL,請執行下列命令:

azcmagent config get proxy.url

若要停止代理程式透過 Proxy 伺服器通訊,請執行下列命令:

azcmagent config clear proxy.url

使用 命令重新設定 Proxy 設定 azcmagent config 時,您不需要重新啟動任何服務。

私人端點的 Proxy 略過

從代理程式 1.15 版開始,您也可以指定不應該使用指定 Proxy 伺服器的服務。 這有助於分割網路設計和私人端點案例,讓 Microsoft Entra ID 和 Azure Resource Manager 流量通過 Proxy 伺服器到公用端點,但想要 Azure Arc 流量略過 Proxy,並與網路上的私人 IP 地址通訊。

Proxy 略過功能不需要您輸入特定 URL 以略過。 相反地,您會提供不應該使用 Proxy 伺服器的服務名稱。 location 參數是指 Arc Server(s) 的 Azure 區域。

當設定為 ArcData 只略過 SQL Server 的 Azure 延伸模組流量,而不是 Arc 代理程式的流量時,Proxy 會略過值。

Proxy 略過值 受影響的端點
AAD login.windows.net
login.microsoftonline.com
pas.windows.net
ARM management.azure.com
Arc his.arc.azure.com
guestconfiguration.azure.com
ArcData1 *.<region>.arcdataservices.com

1 從 Azure 連線 電腦代理程式 1.36 版和適用於 SQL Server 1.1.2504.99 版的 Azure 延伸模組開始,即可取得 Proxy 略過值ArcData。 舊版包含 Azure Arc 端點在 「Arc」Proxy 略過值中啟用的 SQL Server。

若要透過 Proxy 伺服器傳送 Microsoft Entra ID 和 Azure Resource Manager 流量,但略過 Azure Arc 流量的 Proxy,請執行下列命令:

azcmagent config set proxy.url "http://ProxyServerFQDN:port"
azcmagent config set proxy.bypass "Arc"

若要提供服務清單,請以逗號分隔服務名稱:

azcmagent config set proxy.bypass "ARM,Arc"

若要清除 Proxy 略過,請執行下列命令:

azcmagent config clear proxy.bypass

您可以執行 azcmagent show來檢視有效的 Proxy 伺服器和 Proxy 略過設定。

Windows 環境變數

在 Windows 上,Azure 連線 電腦代理程式會先檢查proxy.url代理程式組態屬性(從代理程式 1.13 版開始),然後全系統HTTPS_PROXY環境變數來判斷要使用的 Proxy 伺服器。 如果兩者都是空的,即使已設定預設的 Windows 全系統 Proxy 設定,也不會使用 Proxy 伺服器。

Microsoft 建議使用代理程式特定的 Proxy 組態,而不是系統環境變數。

若要設定 Proxy 伺服器環境變數,請執行下列命令:

# If a proxy server is needed, execute these commands with the proxy URL and port.
[Environment]::SetEnvironmentVariable("HTTPS_PROXY", "http://ProxyServerFQDN:port", "Machine")
$env:HTTPS_PROXY = [System.Environment]::GetEnvironmentVariable("HTTPS_PROXY", "Machine")
# For the changes to take effect, the agent services need to be restarted after the proxy environment variable is set.
Restart-Service -Name himds, ExtensionService, GCArcService

若要設定代理程式停止透過 Proxy 伺服器通訊,請執行下列命令:

[Environment]::SetEnvironmentVariable("HTTPS_PROXY", $null, "Machine")
$env:HTTPS_PROXY = [System.Environment]::GetEnvironmentVariable("HTTPS_PROXY", "Machine")
# For the changes to take effect, the agent services need to be restarted after the proxy environment variable removed.
Restart-Service -Name himds, ExtensionService, GCArcService

Linux 環境變數

在 Linux 上,Azure 連線 Machine 代理程式會先檢查proxy.url代理程式組態屬性(從代理程式 1.13 版開始),然後HTTPS_PROXY為 himds、GC_Ext 和 GCArcService 精靈設定環境變數。 內含的腳本會針對 Azure 連線 Machine 代理程式和電腦上所有其他服務設定系統的預設 Proxy 設定,以使用指定的 Proxy 伺服器。

若要設定代理程式以透過 Proxy 伺服器進行通訊,請執行下列命令:

sudo /opt/azcmagent/bin/azcmagent_proxy add "http://ProxyServerFQDN:port"

若要移除環境變數,請執行下列命令:

sudo /opt/azcmagent/bin/azcmagent_proxy remove

從環境變數移轉至代理程式特定的 Proxy 組態

如果您已經使用環境變數來設定 Azure 連線 計算機代理程式的 Proxy 伺服器,而且想要根據本機代理程式設定移轉至代理程式特定的 Proxy 組態,請遵循下列步驟:

  1. 將 Azure 連線 Machine 代理程式升級至最新版本(從 1.13 版開始),以使用新的 Proxy 組態設定。

  2. 執行 azcmagent config set proxy.url "http://ProxyServerFQDN:port"以 Proxy 伺服器資訊設定代理程式。

  3. 遵循 WindowsLinux 的步驟,移除未使用的環境變數。

下一步