Azure Arc 지원 서버에 대한 업데이트를 프로그래밍 방식으로 관리하는 방법
이 문서에서는 Azure REST API를 사용하여 Azure의 Azure 업데이트 관리자를 통해 Azure Arc 지원 서버에서 평가 및 업데이트 배포를 트리거하는 프로세스를 안내합니다. Azure 업데이트 관리자를 처음 사용하고 자세히 알아보려면 업데이트 관리자 개요를 참조하세요. Azure REST API를 사용하여 Azure 가상 머신을 관리하려면 Azure 가상 머신을 프로그래밍 방식으로 사용하는 방법을 참조하세요.
Azure의 업데이트 관리자를 사용하면 프로그래밍 방식으로 액세스하기 위해 Azure REST API를 사용할 수 있습니다. 또한 Azure PowerShell 및 Azure CLI에서 적절한 REST 명령을 사용할 수 있습니다.
Azure Arc 지원 서버를 관리하는 Azure REST API에 대한 지원은 업데이트 관리자 가상 머신 확장을 통해 사용할 수 있습니다.
업데이트 평가
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 |
OS 업데이트 작업에 걸릴 수 있는 최대 시간(분)입니다. PT100M 과 같은 ISO 8601 규격 기간 문자열이어야 합니다. |
rebootSetting |
컴퓨터를 다시 부팅해야 하는지, 게스트 OS 업데이트 설치를 완료해야 하는지를 표시하는 플래그입니다. 허용되는 값: IfRequired, NeverReboot, AlwaysReboot |
windowsParameters |
지원되는 Microsoft Windows Server 운영 체제를 실행하는 컴퓨터의 게스트 OS 업데이트에 대한 매개 변수 옵션입니다. |
windowsParameters - classificationsToInclude |
Windows Server OS에서 지원하고 제공하는 대로 적용할 OS 업데이트의 범주 또는 분류 목록입니다. 허용되는 값: Critical, Security, UpdateRollup, FeaturePack, ServicePack, Definition, Tools, Update |
windowsParameters - kbNumbersToInclude |
컴퓨터에서 사용할 수 있고 설치해야 하는 Windows 업데이트 KB ID 목록입니다. 'classificationsToInclude'가 포함되면 범주에서 사용할 수 있는 KB가 설치됩니다. 'kbNumbersToInclude'는 설치하려는 특정 KB ID 목록을 제공하는 옵션입니다. 예: 1234 |
windowsParameters - kbNumbersToExclude |
컴퓨터에서 사용할 수 있고 설치해지 않아야 하는 Windows 업데이트 KB ID 목록입니다. 'classificationsToInclude'가 포함되면 범주에서 사용할 수 있는 KB가 설치됩니다. 'kbNumbersToExclude'는 설치하지 않으려는 특정 KB ID 목록을 제공하는 옵션입니다. 예: 5678 |
maxPatchPublishDate |
이는 지정된 최대 게시 날짜 또는 그 이전에 게시된 패치를 설치하는 데 사용됩니다. |
linuxParameters |
컴퓨터에서 지원되는 Linux 배포를 실행할 때 게스트 OS 업데이트에 대한 매개 변수 옵션 |
linuxParameters - classificationsToInclude |
사용되는 Linux OS의 패키지 관리자에서 지원하고 제공하는 대로 적용할 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: [Frequency as integer]['Day(s)'] 형식으로 지정할 수 있습니다. 빈도가 제공되지 않으면 기본 빈도는 1입니다. 일별 일정의 예는 recurEvery: Day, recurEvery: 3Days입니다. 주별 일정은 recurEvery: [Frequency as integer]['Week(s)'] [선택적 쉼표로 구분된 평일 목록 Monday-Sunday] 형식으로 지정됩니다. 주별 일정의 예는 recurEvery: 3Weeks, recurEvery: Week Saturday,Sunday입니다. 월별 일정은 [Frequency as integer]['Month(s)'] [쉼표로 구분된 월 일 목록] 또는 [Frequency as integer]['Month(s)'] [Week of Month (First, Second, Third, Fourth, Last)] [Weekday Monday-Sunday] 형식으로 지정할 수 있습니다. 월별 일정의 예는 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()를 실행하여 가져올 수 있습니다. 예: Standard Time, UTC, W. Europe Standard Time, Korea Standard Time, Cen. Australia Standard Time |
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을 일정과 연결
VM을 유지 관리 구성 일정과 연결하려면 다음 PUT 요청을 지정합니다.
PUT on `<ARC or Azure VM resourceId>/providers/Microsoft.Maintenance/configurationAssignments/<configurationAssignment name>?api-version=2021-09-01-preview`
PUT 요청을 지정하려면 유효한 매개 변수 및 값과 함께 다음 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`