共用方式為


如何針對 Azure 已啟用 Arc 伺服器進行程式設計式管理更新

本文將逐步引導您在 Azure 的 Azue 更新管理員中,使用 Azure REST API 觸發啟用 Azure Arc 之伺服器上的評量和更新部署。 如果您不熟悉 Azure 更新管理員,而想要深入了解,請參閱更新管理員概觀。 若要使用 Azure REST API 來管理 Azure 虛擬機器,請參閱如何以程式設計方式使用 Azure 虛擬機器

Azure 的更新管理員可以讓您使用 Azure REST API,透過程式設計的方式進行存取。 此外,您可以從 Azure PowerShellAzure CLI 使用適當的 REST 命令。

若要以 Azure REST API 來管理已啟用 Azure Arc 的伺服器,可透過更新管理員虛擬機器延伸模組取得支援。

更新評估

若要在您已啟用 Azure Arc 的伺服器上觸發更新評量,請指定下列 POST 要求:

POST on `subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.HybridCompute/machines/machineName/assessPatches?api-version=2020-08-15-preview`
{
}

若要指定 POST 要求,您可以使用 Azure CLI az rest 命令。

az rest --method post --url https://management.azure.com/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.HybridCompute/machines/machineName/assessPatches?api-version=2020-08-15-preview --body @body.json

2020-08-15 版的要求本文格式如下:

{
}

更新部署

若要對已啟用 Azure Arc 的伺服器觸發更新部署,請指定下列 POST 要求:

POST on `subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.HybridCompute/machines/machineName/installPatches?api-version=2020-08-15-preview`

要求本文

下表說明要求本文的元素:

屬性 說明
maximumDuration 執行作業系統更新作業可能需要的最大時長 (分鐘)。 必須符合 ISO 8601 規範的持續時間字串 (如 PT100M)。
rebootSetting 指出您是否應將機器重新開機,以及客體作業系統更新安裝是否需要重新開機才能完成的旗標。 可接受的值為:IfRequired, NeverReboot, AlwaysReboot
windowsParameters 執行支援的 Microsoft Windows Server 作業系統之機器上的客體作業系統更新參數選項。
windowsParameters - classificationsToInclude 要套用的作業系統更新類別或分類清單,如 Windows Server OS 所支援和提供。 可接受的值為:Critical, Security, UpdateRollup, FeaturePack, ServicePack, Definition, Tools, Update
windowsParameters - kbNumbersToInclude 可供機器使用且您需要安裝的 Windows Update KB 識別碼清單。 您如有加入任何 ‘classificationsToInclude',將會安裝類別中可用的 KB。 'kbNumbersToInclude' 是一個選項,提供您想要安裝的特定 KB 識別碼清單。 例如:1234
windowsParameters - kbNumbersToExclude 列出可供機器使用,以及不應安裝的 Windows Update KB 識別碼。 您如有加入任何 'classificationsToInclude',將會安裝類別中的可用 KB。 'kbNumbersToExclude' 是一個選項,提供您要排除而不安裝的特定 KB 識別碼清單。 例如:5678
maxPatchPublishDate 此元素用來安裝在此發佈日期期限當天或之前發佈的修補程式。
linuxParameters 機器執行時的客體 OS 更新參數選項支援 Linux 散發套件
linuxParameters - classificationsToInclude 要套用的作業系統更新類別或分類清單,如 Linux OS 的套件管理員所支援和提供。 可接受的值為:Critical, Security, Others。 如需詳細資訊,請參閱 Linux 套件管理員和 OS 支援
linuxParameters - packageNameMasksToInclude 可供機器使用且必須安裝的 Linux 套件清單。 如果已包含任何 'classificationsToInclude',則會安裝類別中提供的套件。 'packageNameMasksToInclude' 是一個選項,提供您想要安裝的套件清單。 例如:mysql, libc=1.0.1.1, kernel*
linuxParameters - packageNameMasksToExclude 適用於機器且應安裝的 Linux 套件清單。 如果已包含任何 'classificationsToInclude',則會安裝類別中提供的套件。 'packageNameMasksToExclude' 是一個選項,提供您要排除而不安裝的特定套件清單。 例如:mysql, libc=1.0.1.1, kernel*

若要指定 POST 要求,可使用下列 Azure REST API 呼叫搭配有效的參數和值。

POST on 'subscriptions/subscriptionI/resourceGroups/resourceGroupName/providers/Microsoft.HybridCompute/machines/machineName/installPatches?api-version=2020-08-15-preview

{
        "maximumDuration": "PT120M",
        "rebootSetting": "IfRequired",
        "windowsParameters": {
          "classificationsToInclude": [
            "Security",
            "UpdateRollup",
            "FeaturePack",
            "ServicePack"
          ],
          "kbNumbersToInclude": [
            "11111111111",
            "22222222222222"
          ],
          "kbNumbersToExclude": [
            "333333333333",
            "55555555555"
          ]
        }
  }'

建立維護設定排程

若要建立維護設定排程,請指定下列 PUT 要求:

PUT on `/subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.Maintenance/maintenanceConfigurations/<maintenanceConfigurationsName>?api-version=2021-09-01-preview`

要求本文

下表說明要求本文的元素:

屬性 說明
id 資源的完整識別碼
location 取得或設定資源的位置
name 資源名稱
properties.extensionProperties 取得或設定 maintenanceConfiguration 的 extensionProperties
properties.maintenanceScope 取得或設定組態的 maintenanceScope
properties.maintenanceWindow.duration HH:mm 格式的維護期間。 如果未提供,則會根據提供的維護範圍來使用預設值。 範例:05:00。
properties.maintenanceWindow.expirationDateTime YYYY-MM-DD hh:MM 格式維護期間的有效到期日。 時段會依據提供的時區建立,並會依據該時區使用日光節約時間。 您必須將到期日設定為未來的日期。 如果未提供,則會將其設定為日期時間上限 9999-12-31 23:59:59。
properties.maintenanceWindow.recurEvery 預期維護期間重複發生的速度。 速度可以以每日、每週或每月排程表示。 您可以將每日排程格式化為 recurEvery:[整數的次數]['天數']。 如果未提供任何頻率,則預設頻率為 1。 每日排程範例為 recurEvery: Day, recurEvery: 3Days。 每週排程的格式為 recurEvery: [Frequency as integer]['Week(s)'] [星期一至星期日工作日的選擇性逗號分隔清單]。 舉例來說,每週排程可以是 recurEvery: 3Weeks、recurEvery: Week Saturday,Sunday。 您可以將每月排程格式化為 [整數的次數]['月'] [以逗號分隔的月份天數清單] 或 [整數的次數]['月'] [每月的第幾週 (第一, 第二, 第三, 第四, 最後)] [星期幾 (週一至週日)]。 舉例來說,每月排程可以是 are recurEvery: Month, recurEvery: 2Months, recurEvery: Month day23, day24, recurEvery: Month Last Sunday, recurEvery: Month Fourth Monday。
properties.maintenanceWindow.startDateTime YYYY-MM-DD hh:mm 格式維護期間的有效開始日期。 您可以將開始日期設定為目前日期或未來的日期。 視窗將建立在提供的時區中,並根據該時區調整為日光節約時間。
properties.maintenanceWindow.timeZone 時區的名稱。 您可以在 PowerShell 中執行 [System.TimeZoneInfo]:GetSystemTimeZones() 來取得時區清單。 範例:太平洋標準時間、UTC、西歐標準時間、韓國標準時間、Cen。 澳大利亞標準時間。
properties.namespace 取得或設定資源的命名空間
properties.visibility 取得或設定組態的可見度。 預設值為 'Custom'
systemData 包含 createdBy 和 modifiedBy 資訊的 Azure Resource Manager 中繼資料。
tags 取得或設定資源的標記
type 資源的類型

若要指定 POST 要求,可使用下列 Azure REST API 呼叫搭配有效的參數和值。

PUT on '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/atscalepatching/providers/Microsoft.Maintenance/maintenanceConfigurations/TestAzureInGuestAdv2?api-version=2021-09-01-preview

{
  "location": "eastus2euap",
  "properties": {
    "namespace": null,
    "extensionProperties": {
      "InGuestPatchMode" : "User"
    },
    "maintenanceScope": "InGuestPatch",
    "maintenanceWindow": {
      "startDateTime": "2021-08-21 01:18",
      "expirationDateTime": "2221-05-19 03:30",
      "duration": "01:30",
      "timeZone": "India Standard Time",
      "recurEvery": "Day"
    },
    "visibility": "Custom",
    "installPatches": {
      "rebootSetting": "IfRequired",
      "windowsParameters": {
        "classificationsToInclude": [
          "Security",
          "Critical",
          "UpdateRollup"
        ]
      },
      "linuxParameters": {
        "classificationsToInclude": [
          "Other"
        ]
      }
    }
  }
}'

建立 VM 與排程的關聯

若要將虛擬機器與維護設定排程建立關聯,請指定下列 PUT 要求:

PUT on `<ARC or Azure VM resourceId>/providers/Microsoft.Maintenance/configurationAssignments/<configurationAssignment name>?api-version=2021-09-01-preview`

若要指定 POST 要求,可使用下列 Azure REST API 呼叫搭配有效的參數和值。

PUT on '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/atscalepatching/providers/Microsoft.Compute/virtualMachines/win-atscalepatching-1/providers/Microsoft.Maintenance/configurationAssignments/TestAzureInGuestAdv?api-version=2021-09-01-preview

{
  "properties": {
    "maintenanceConfigurationId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/atscalepatching/providers/Microsoft.Maintenance/maintenanceConfigurations/TestAzureInGuestIntermediate2"
  },
  "location": "eastus2euap"
}'

從排程中移除機器

若要從排程中移除機器,請為您所建立的機器,取得其用以連結如下所示之 Azure Resource Graph 中目前排程所需的所有設定指派名稱:

maintenanceresources
| where type =~ "microsoft.maintenance/configurationassignments"
| where properties.maintenanceConfigurationId =~ "<maintenance configuration Resource ID>"
| where properties.resourceId =~ "<Machine Resource Id>"
| project name, id

從上述清單中的名稱之後,請遵循 DELETE 要求,刪除設定指派:

DELETE on `<ARC or Azure VM resourceId>/providers/Microsoft.Maintenance/configurationAssignments/<configurationAssignment name>?api-version=2021-09-01-preview`

下一步

  • 若要檢視由更新管理員所產生的更新評定和部署記錄,請參閱查詢記錄
  • 若要針對問題進行疑難排解,請參閱疑難排解更新管理員。