Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описывается процесс использования REST API Azure для активации оценки и развертывания обновлений на виртуальной машине Azure с помощью Azure Update Manager в Azure. Если вы не знакомы с Диспетчером обновлений и хотите узнать больше, ознакомьтесь с обзором Диспетчера обновлений Azure. Сведения об использовании REST API Azure для управления серверами с поддержкой Arc см. в статье "Как программно работать с серверами с поддержкой Arc".
Диспетчер обновлений Azure в Azure позволяет использовать REST API Azure для программного доступа. Кроме того, можно использовать соответствующие команды REST из Azure PowerShell и Azure CLI.
Поддержка REST API Azure для управления виртуальными машинами Azure доступна через расширение виртуальной машины Update Manager.
Оценка обновлений
Чтобы активировать оценку обновления на виртуальной машине Azure, укажите следующий запрос POST:
POST on `subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.Compute/virtualMachines/virtualMachineName/assessPatches?api-version=2020-12-01`
Чтобы указать запрос POST, можно использовать команду Azure CLI az vm assess-patches .
az vm assess-patches -g MyResourceGroup -n MyVm
Обновление развертывания
Чтобы активировать развертывание обновления на виртуальной машине Azure, укажите следующий запрос POST:
POST on `subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.Compute/virtualMachines/virtualMachineName/installPatches?api-version=2020-12-01`
Текст запроса
В следующей таблице описываются элементы текста запроса:
| Свойство | Описание |
|---|---|
maximumDuration |
Максимальное время выполнения операции. Это должна быть строка длительности, совместимая с ISO 8601, например PT4H (4 часа). |
rebootSetting |
Укажите, следует ли перезагрузить машину и требуется ли это для завершения установки обновлений гостевой ОС. Допустимые значения: IfRequired, NeverReboot, AlwaysReboot |
windowsParameters |
Параметры для обновления гостевой ОС на виртуальных машинах Azure под управлением поддерживаемой операционной системы Microsoft Windows Server. |
windowsParameters - classificationsToInclude |
Список категорий и классификаций, используемых для выбора обновлений, установленных на компьютере. Допустимые значения: Critical, Security, UpdateRollup, FeaturePack, ServicePack, Definition, Tools, Updates |
windowsParameters - kbNumbersToInclude |
Список KB ID обновлений Windows, которые должны быть установлены. Будут установлены все обновления, относящиеся к классификациям, указанным в classificationsToInclude списке.
kbNumbersToInclude — это необязательный список конкретных ключевых объектов, которые необходимо установить в дополнение к классификациям. Например: 1234 |
windowsParameters - kbNumbersToExclude |
Список идентификаторов базы знаний центра обновления Windows, которые не должны быть установлены. Этот параметр переопределяетwindowsParameters - classificationsToInclude, то есть идентификатор обновления Windows KB, указанный здесь, не будет установлен, даже если он относится к классификации, указанной в параметреclassificationsToInclude. |
maxPatchPublishDate |
Это используется для установки исправлений, опубликованных до указанной максимальной даты публикации. |
linuxParameters |
Параметры для обновления гостевой ОС на виртуальных машинах Azure под управлением поддерживаемой операционной системы сервера Linux. |
linuxParameters - classificationsToInclude |
Список категорий и классификаций, используемых для выбора обновлений, установленных на компьютере. Допустимые значения: Critical, Security, Other |
linuxParameters - packageNameMasksToInclude |
Список установленных пакетов Linux. Будут установлены все обновления, относящиеся к классификациям, указанным в classificationsToInclude списке.
packageNameMasksToInclude — это необязательный список имен пакетов, которые необходимо установить в дополнение к классификациям. Например: mysql, libc=1.0.1.1, kernel* |
linuxParameters - packageNameMasksToExclude |
Список обновлений, которые не должны быть установлены. Этот параметр переопределяет linuxParameters - packageNameMasksToExclude, то есть пакет, указанный здесь, не будет установлен, даже если он принадлежит классификации, указанной в параметре classificationsToInclude. |
Чтобы указать запрос POST, можно использовать следующий вызов REST API Azure с допустимыми параметрами и значениями.
POST on 'subscriptions/{subscriptionId}/resourceGroups/acmedemo/providers/Microsoft.Compute/virtualMachines/ameacr/installPatches?api-version=2020-12-01
{
"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 |
Возвращает или задает параметры расширения конфигурации обслуживания |
properties.maintenanceScope |
Возвращает или задает диапазон параметров обслуживания конфигурации |
properties.maintenanceWindow.duration |
Длительность периода обслуживания в формате HH:MM. Если это не указано, значение по умолчанию используется в зависимости от заданной области обслуживания. Пример: 05:00. |
properties.maintenanceWindow.expirationDateTime |
Дата истечения срока действия периода обслуживания в формате ГГГГ-ММ-ДД чч:мм. Окно создается в часовом поясе, который используется для перехода на летнее время согласно этому часовому поясу. Дата окончания срока действия должна быть задана в будущем. Если значение не указано, оно устанавливается как максимальное значение datetime 9999-12-31 23:59:59. |
properties.maintenanceWindow.recurEvery |
Ожидаемая частота повторения окна обслуживания. Ставка может быть выражена в виде ежедневного, еженедельного или ежемесячного расписания. Ежедневные расписания форматируются как recurEvery: [Частота в целых числах]['День(дни)']. Если частота не указана, частота по умолчанию — 1. Примеры ежедневного расписания — recurEvery: Day, recurEvery: 3Days. Еженедельные расписания форматируются как recurEvery: [Частота в виде целого числа][Неделя(и)] [Необязательный список дней недели, разделённых запятыми, с понедельника по воскресенье]. Примеры еженедельного расписания — recurEvery: 3Weeks, recurEvery: Неделя суббота, воскресенье. Ежемесячные расписания форматируются как [частота в виде целого числа]['Месяцы'] [список дней месяца, разделённый запятыми] или [частота как целое число]['Месяцы'] [неделя месяца (первая, вторая, третья, четвертая, последняя)] [день недели понедельник-воскресенье]. Примеры ежемесячного расписания — повтор: каждый месяц, повтор: каждые 2 месяца, повтор: каждый месяц, 23 день, 24 день, повтор: каждый месяц, последнее воскресенье, повтор: каждый месяц, четвертый понедельник. |
properties.maintenanceWindow.startDateTime |
Дата начала периода обслуживания в формате ГГГГ-ММ-ДД hh:mm. Вы можете задать дату начала либо текущей, либо будущей. Окно будет создано в указанном часовом поясе и скорректировано в соответствии с летним временем этого часового пояса. |
properties.maintenanceWindow.timeZone |
Имя часового пояса. Список часовых поясов можно получить путем выполнения [System.TimeZoneInfo]:GetSystemTimeZones() в PowerShell. Пример: Тихоокеанское стандартное время, UTC, Западно-Европейское стандартное время, Корейское стандартное время. Стандартное время Австралии. |
properties.namespace |
Возвращает или задает пространство имен ресурса |
properties.visibility |
Возвращает или задает видимость конфигурации. Значение по умолчанию — 'Пользовательский' |
systemData |
Метаданные Azure Resource Manager, содержащие данные createdBy и modifiedBy. |
tags |
Возвращает или задает теги ресурса |
type |
Тип ресурса |
Чтобы указать запрос POST, можно использовать следующий вызов REST API Azure с допустимыми параметрами и значениями.
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"
]
}
}
}
}'
Связывание виртуальной машины с расписанием
Чтобы связать виртуальную машину с расписанием конфигурации обслуживания, укажите следующий запрос 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/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`
Следующие шаги
- Чтобы просмотреть журналах оценки и развертывания обновлений, созданных Диспетчером обновлений, см. журналы запросов.
- Сведения об устранении неполадок см. в разделе "Устранение неполадок с диспетчером обновлений".