Как программно управлять обновлениями для серверов с поддержкой Azure Arc?
В этой статье описывается процесс использования REST API Azure для активации оценки и развертывания обновлений на серверах с поддержкой Azure Arc с помощью Azure Update Manager в Azure. Если вы не знакомы с Диспетчером обновлений Azure и хотите узнать больше, ознакомьтесь с обзором Диспетчера обновлений. Сведения об использовании REST API Azure для управления виртуальными машинами Azure см. в статье "Как программно работать с виртуальными машинами Azure".
Диспетчер обновлений в Azure позволяет использовать REST API Azure для программного доступа. Кроме того, можно использовать соответствующие команды REST из Azure PowerShell и Azure CLI.
Поддержка REST API Azure для управления серверами с поддержкой Azure Arc доступна через расширение виртуальной машины Update Manager.
Оценка обновлений
Чтобы активировать оценку обновлений на сервере с поддержкой 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`
Текст запроса
В следующей таблице описываются элементы текста запроса:
Свойство | Description |
---|---|
maximumDuration |
Максимальное время в минутах может занять операция обновления ОС. Это должна быть строка длительности, совместимая с ISO 8601, например PT100M . |
rebootSetting |
Помечайте состояние, если необходимо перезагрузить компьютер, и если для завершения установки обновления гостевой ОС требуется его завершение. Допустимые значения: IfRequired, NeverReboot, AlwaysReboot |
windowsParameters |
Параметры для обновления гостевой ОС на компьютере под управлением поддерживаемой операционной системы Microsoft Windows Server. |
windowsParameters - classificationsToInclude |
Список категорий или классификаций обновлений ОС, которые необходимо применить, как поддерживаемые и предоставляемые ОС Windows Server. Допустимые значения: Critical, Security, UpdateRollUp, FeaturePack, ServicePack, Definition, Tools, Update |
windowsParameters - kbNumbersToInclude |
Список идентификаторов Обновл. Windows КБ, доступных для компьютера и необходимых для установки. Если вы включили какие-либо классификацииToInclude, устанавливаются ключевые показатели эффективности, доступные в категории. KbNumbersToInclude — это возможность предоставить список определенных идентификаторов базы знаний выше и выше, которые требуется установить. Например: 1234 |
windowsParameters - kbNumbersToExclude |
Список идентификаторов базы знаний Обновл. Windows, доступных на компьютере и которые не должны быть установлены. Если вы включили какие-либо классификацииToInclude, будут установлены ключевые показатели эффективности, доступные в категории. KbNumbersToExclude — это возможность предоставить список определенных идентификаторов базы знаний, которые необходимо убедиться, что не установлены. Например: 5678 |
maxPatchPublishDate |
Это используется для установки исправлений, опубликованных до указанной максимальной даты публикации. |
linuxParameters |
Параметры параметра для обновления гостевой ОС при запуске поддерживаемого дистрибутива Linux |
linuxParameters - classificationsToInclude |
Список категорий или классификаций обновлений ОС, которые следует применить, как поддерживается и предоставляется менеджером пакетов ОС Linux. Допустимые значения: Critical, Security, Others Дополнительные сведения см. в разделе "Диспетчер пакетов Linux" и поддержка ОС. |
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, можно использовать следующий вызов REST API Azure с допустимыми параметрами и значениями.
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`
Текст запроса
В следующей таблице описываются элементы текста запроса:
Свойство | Description |
---|---|
id |
Полный идентификатор ресурса |
location |
Возвращает или задает расположение ресурса |
name |
Имя ресурса. |
properties.extensionProperties |
Возвращает или задает extensionProperties для обслуживанияConfiguration |
properties.maintenanceScope |
Возвращает или задает обслуживаниеScope конфигурации |
properties.maintenanceWindow.duration |
Длительность периода обслуживания в формате HH:mm. Если это не указано, значение по умолчанию будет использоваться в зависимости от заданной области обслуживания. Пример: 05:00. |
properties.maintenanceWindow.expirationDateTime |
Срок действия периода обслуживания в формате ГГГГ-ММ-ДД hh:MM. Окно создается в часовом поясе, предоставленном в соответствии с этим часовой поясом. Необходимо задать дату окончания срока действия для следующей даты. Если оно не указано, оно будет установлено в качестве максимального значения datetime 9999-12-31 23:59:59. |
properties.maintenanceWindow.recurEvery |
Скорость, с которой ожидается повторение периода обслуживания. Ставка может быть выражена как ежедневные, еженедельные или ежемесячные расписания. Ежедневное расписание можно форматировать как recurEvery: [Частота в виде целочисленного числа]['Day(s)]. Если частота не указана, частота по умолчанию — 1. Примеры ежедневного расписания — recurEvery: Day, recurEvery: 3Days. Еженедельное расписание отформатировано как recurEvery: [Частота как целое число][Неделя(s)]] [Необязательный список запятых разделенный список еженедельных дней в понедельник-воскресенье]. Примеры еженедельного расписания — recurEvery: 3Weeks, recurEvery: Неделя суббота, воскресенье. Вы можете форматировать ежемесячные расписания как [частота как целое число]['Месяцы)'] [разделенный запятыми список дней месяца] или [Частота как целочисленное число][месяцы)] [Неделя месяца (первая, вторая, четвертая, четвертая, последняя)] [weekday понедельник-воскресенье]. Примеры ежемесячного расписания — recurEvery: Month, recurEvery: 2Months, recurEvery: Month day23, day24, recurEvery: Month Last Sunday, recurEvery: Month Fourth Monday. |
properties.maintenanceWindow.startDateTime |
Дата начала периода обслуживания в формате ГГГГ-ММ-ДД hh:mm. Вы можете задать дату начала либо текущей, либо будущей. Окно будет создано в часовом поясе, предоставленном и скорректировано в соответствии с дневной экономией в соответствии с этим часовом поясом. |
properties.maintenanceWindow.timeZone |
Имя часового пояса. Список часовых поясов можно получить, выполнив [System.TimeZoneInfo]:GetSystemTimeZones() в PowerShell. Пример: Тихоокеанское стандартное время, UTC, W. Europe Standard Time, Корея Standard Time, Cen. Стандартное время Австралии. |
properties.namespace |
Возвращает или задает пространство имен ресурса |
properties.visibility |
Возвращает или задает видимость конфигурации. Значение по умолчанию — Custom |
systemData |
Метаданные Azure Resource Manager, содержащие данные createdBy и modifiedBy. |
tags |
Возвращает или задает теги ресурса |
type |
Тип ресурса |
Чтобы указать запрос POST, можно использовать следующий вызов REST API Azure с допустимыми параметрами и значениями.
PUT on '/subscriptions/0f55bb56-6089-4c7e-9306-41fb78fc5844/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"
]
}
}
}
}'
Связывание виртуальной машины с расписанием
Чтобы связать виртуальную машину с расписанием конфигурации обслуживания, укажите следующий запрос PUT:
PUT on `<ARC or Azure VM resourceId>/providers/Microsoft.Maintenance/configurationAssignments/<configurationAssignment name>?api-version=2021-09-01-preview`
Чтобы указать запрос PUT, можно использовать следующий вызов REST API Azure с допустимыми параметрами и значениями.
PUT on '/subscriptions/0f55bb56-6089-4c7e-9306-41fb78fc5844/resourceGroups/atscalepatching/providers/Microsoft.Compute/virtualMachines/win-atscalepatching-1/providers/Microsoft.Maintenance/configurationAssignments/TestAzureInGuestAdv?api-version=2021-09-01-preview
{
"properties": {
"maintenanceConfigurationId": "/subscriptions/0f55bb56-6089-4c7e-9306-41fb78fc5844/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`
Следующие шаги
- Сведения об оценке обновлений и журналах развертывания, созданных Диспетчером обновлений, см . в журналах запросов.
- Сведения об устранении неполадок см. в разделе "Диспетчер устранения неполадок ".