管理和維護 Connected Machine 代理程式

在初始部署 Azure Connected Machine 代理程式之後,您可能需要重新設定代理程式、升級代理程式,或從電腦中移除代理程式。 這些例行維護工作可以手動完成,或透過自動化 (來減少作業錯誤和費用) 。

關於 azcmagent 工具

azcmagent 工具可用來在安裝期間設定 Azure Connected Machine 代理程式,或在安裝之後修改代理程式的初始設定。 azcmagent.exe提供下列命令列參數來自訂代理程式並檢視其狀態:

  • check - 針對網路連線問題進行疑難排解。
  • connect - 將電腦連線到 Azure Arc。
  • 中斷連線 - 中斷電腦與 Azure Arc 的連線。
  • show - 檢視代理程式狀態及其組態屬性 (資源組名、訂用帳戶識別碼、版本等) ,這可在針對代理程式的問題進行疑難排解時有所説明。 包含 參數, -j 以 JSON 格式輸出結果。
  • config - 檢視和變更設定,以啟用功能和控制代理程式列為。
  • logs - 在包含記錄的目前目錄中建立.zip檔案,以協助您進行疑難排解。
  • version - 顯示連線的電腦代理程式版本。
  • -useStderr - 直接錯誤和詳細資訊輸出至 stderr。 包含 參數, -json 以 JSON 格式輸出結果。
  • -h 或 --help - 顯示可用的命令列參數。 例如,若要查看 Connect 參數的詳細說明,請輸入 azcmagent connect -h
  • -v 或 --verbose - 啟用詳細資訊記錄。

您可以在以互動方式登入時,或使用Microsoft 身分識別平臺存取權杖,或使用您用來將多個代理程式上線的相同服務主體,手動執行連線中斷連線。 如果您未使用服務主體向已啟用 Azure Arc 的伺服器註冊電腦,您 現在可以建立服務主體

注意

您必須擁有 Windows 的 系統管理員 許可權,或 Linux 電腦上的 存取權限,才能執行 azcmagent

核取

此參數可讓您執行網路連線測試,以針對代理程式與 Azure 服務之間的網路問題進行疑難排解。 網路連線檢查包含所有必要的 Azure Arc 網路端點,但不包含您所安裝擴充功能所存取的端點。

執行網路連線檢查時,您必須提供您要測試的 Azure 區域名稱 (例如 eastus)。 也建議您使用 --verbose 參數來查看成功和失敗測試的結果:

azcmagent check --location <regionName> --verbose

如果您預期伺服器透過 Azure Arc Private Link範圍與 Azure 通訊,請使用 --enable-pls-check 1.17-1.19 版的 (--use-private-link) 參數來執行其他測試,以確認針對 Azure Arc 服務解析的主機名稱和 IP 位址是私人端點。

azcmagent check --location <regionName> --enable-pls-check --verbose

連線

此參數會指定 Azure Resource Manager中的資源,並將其連線至 Azure Arc。您必須指定要連線之資源的訂用帳戶和資源群組。 電腦的相關資料會儲存在設定所 --location 指定的 Azure 區域中。 除非另有指定,否則預設資源名稱是電腦的主機名稱。

接著會下載與系統指派機器身分識別對應的憑證,並儲存在本機。 完成此步驟之後,Azure 連線機器中繼資料服務和客體設定代理程式服務就會開始與已啟用 Azure Arc 的伺服器同步處理。

若要使用服務主體進行連線,請執行下列命令:

azcmagent connect --service-principal-id <serviceprincipalAppID> --service-principal-secret <serviceprincipalPassword> --tenant-id <tenantID> --subscription-id <subscriptionID> --resource-group <ResourceGroupName> --location <resourceLocation>

若要使用存取權杖進行連線,請執行下列命令:

azcmagent connect --access-token <> --subscription-id <subscriptionID> --resource-group <ResourceGroupName> --location <resourceLocation>

若要使用您的提升權限登入認證 (互動式) 進行連線,請執行下列命令:

azcmagent connect --tenant-id <TenantID> --subscription-id <subscriptionID> --resource-group <ResourceGroupName> --location <resourceLocation>

中斷連線

此參數會指定要從 Azure Arc 中刪除的 Azure Resource Manager資源。執行此參數並不會從電腦中移除代理程式;您必須個別卸載代理程式。 在電腦中斷連線之後,您可以使用 重新向已啟用 azcmagent connect Azure Arc 的伺服器註冊它,以便在 Azure 中為其建立新的資源。

注意

如果您已將一或多個 Azure VM 擴充功能部署至已啟用 Azure Arc 的伺服器,而且您在 Azure 中刪除其註冊,擴充功能仍會保持安裝狀態,而且可能會繼續執行其功能。 任何要淘汰或不再受已啟用 Azure Arc 的伺服器管理的電腦,都應該先 移除其擴充 功能,再從 Azure 移除其註冊。

若要使用服務主體中斷連線,請執行下列命令。 請務必指定具有中斷連線伺服器所需角色的服務主體;這不會是用來將伺服器上線的相同服務主體:

azcmagent disconnect --service-principal-id <serviceprincipalAppID> --service-principal-secret <serviceprincipalPassword>

若要使用存取權杖中斷連線,請執行下列命令:

azcmagent disconnect --access-token <accessToken>

若要使用您的提升權限登入認證 (互動式) 中斷連線,請執行下列命令:

azcmagent disconnect

config

此參數可讓您檢視及設定控制代理程式列為的設定。

若要檢視所有組態屬性及其值的清單,請執行下列命令:

azcmagent config list

若要取得特定組態屬性的值,請執行下列命令:

azcmagent config get <propertyName>

若要變更組態屬性,請執行下列命令:

azcmagent config set <propertyName> <propertyValue>

如果您要變更的屬性支援值清單,您可以使用 --add--remove 旗標來新增或移除特定專案,而不需要重新輸入整個清單:

azcmagent config set <propertyName> <propertyValue> --add

azcmagent config set <propertyName> <propertyValue> --remove

若要清除組態屬性的值,請執行下列命令:

azcmagent config clear <propertyName>

升級代理程式

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

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

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

作業系統 升級方法
Windows 手動
Microsoft Update
Ubuntu 容易
SUSE Linux Enterprise Server zypper
RedHat Enterprise, Amazon, CentOS Linux yum

Windows 代理程式

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

Microsoft更新設定

讓 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更新」。

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

  7. 流覽至[電腦設定 > 系統管理範本 > ] [Windows 元件 > ] Windows Update

  8. 選取 [設定自動更新設定] 來編輯它。

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

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

  11. 選取 [確定]。

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

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

  • 產品名稱:Azure 連線機器代理程式 (選取所有 3 個子選項)
  • 分類:重要更新、更新

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

使用安裝精靈手動升級

  1. 使用具有系統管理許可權的帳戶登入電腦。

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

  3. 執行 AzureConnectedMachineAgent.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 Arc 的伺服器資源

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

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

  1. 稽核計算機上安裝的 VM 擴充功能,並使用Azure CLI或Azure PowerShell記下其設定

  2. 移除電腦上安裝的任何 VM 擴充功能。 您可以使用Azure 入口網站Azure CLIAzure PowerShell來執行此動作。

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

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

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

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

解除安裝代理程式

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

步驟 1:移除 VM 擴充功能

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

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

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

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

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

下列兩種方法都會移除代理程式,但是不會移除機器上的 C:\Program Files\AzureConnectedMachineAgent 資料夾。

從控制台解除安裝

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

  1. 使用具有系統管理員權限的帳戶登入電腦。

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

  3. 在 [程式和功能] 中,依序選取 [Azure Connected Machine 代理程式]、[解除安裝] 和 [是]。

您也可以直接從代理程式安裝精靈刪除 Windows 代理程式。 執行 AzureConnectedMachineAgent.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 Connected Machine 代理程式 1.13 版開始提供,而且是設定 Proxy 伺服器設定的慣用方式。 此方法可防止 Azure Connected 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 伺服器的服務。 這有助於分割網路設計和私人端點案例,其中您希望 Azure Active Directory 和 Azure Resource Manager流量通過 Proxy 伺服器到公用端點,但想要 Azure Arc 流量略過 Proxy,並與網路上的私人 IP 位址通訊。

Proxy 略過功能不需要您輸入要略過的特定 URL。 相反地,您會提供不應該使用 Proxy 伺服器的服務名稱 (s) 。

Proxy 略過值 受影響的端點
AAD login.windows.net, login.microsoftonline.com, pas.windows.net
ARM management.azure.com
Arc his.arc.azure.com, guestconfiguration.azure.com, guestnotificationservice.azure.com, servicebus.windows.net

若要透過 Proxy 伺服器傳送 Azure Active Directory 和 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 Connected Machine 代理程式會先檢查 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 Connected Machine 代理程式會先檢查 proxy.url 代理程式組態屬性, (從代理程式 1.13 版) 開始,然後 HTTPS_PROXY 為他、GC_Ext和 GCArcService 精靈設定環境變數。 有一個包含的腳本會針對 Azure Connected Machine 代理程式以及電腦上所有其他服務設定系統的預設 Proxy 設定,以使用指定的 Proxy 伺服器。

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

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

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

sudo /opt/azcmagent/bin/azcmagent_proxy remove

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

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

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

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

  3. 依照 WindowsLinux的步驟移除未使用的環境變數。

下一步