유지 관리 구성 및 Azure CLI를 사용하여 업데이트 제어
적용 대상: ✔️ Linux VM ✔️ Windows VM ✔️ 유연한 확장 집합 ✔️ 균일한 확장 집합
유지 관리 구성 기능을 사용하여 다양한 Azure 리소스에 플랫폼 업데이트를 적용할 시기를 제어할 수 있습니다. 이 문서에서는 이 기능을 사용하기 위한 Azure CLI 옵션을 다룹니다. 유지 관리 구성 사용의 이점, 제한 사항 및 기타 관리 옵션에 대한 자세한 내용은 유지 관리 구성으로 플랫폼 업데이트 관리를 참조하세요.
Important
특정 범위는 특정 컴퓨터 형식과 일정을 지원합니다. VM(가상 머신)에 적합한 범위를 선택해야 합니다.
유지 관리 구성을 만듭니다.
유지 관리 구성을 만드는 첫 단계는 구성에 대한 컨테이너로 리소스 그룹을 만드는 것입니다. 이 예에서는 eastus에 myMaintenanceRG라는 리소스 그룹을 만듭니다. 사용하려는 리소스 그룹이 이미 있는 경우 이 부분을 건너뛰고 나머지 예제에서는 리소스 그룹 이름을 고유한 이름으로 바꿀 수 있습니다.
az group create \
--location eastus \
--name myMaintenanceRG
리소스 그룹을 만든 후 az maintenance configuration create
를 사용하여 유지 관리 구성을 만듭니다.
Host
이 예에서는 매월 네 번째 월요일에 예약된 기간 5시간 동안 호스트 머신으로 범위가 지정된 myConfig라는 유지 관리 구성을 만듭니다.
az maintenance configuration create \
--resource-group myMaintenanceRG \
--resource-name myConfig \
--maintenance-scope host \
--location eastus \
--maintenance-window-duration "05:00" \
--maintenance-window-recur-every "Month Fourth Monday" \
--maintenance-window-start-date-time "2020-12-30 08:00" \
--maintenance-window-time-zone "Pacific Standard Time"
--maintenance-scope host
를 사용하면 유지 관리 구성이 호스트 인프라 업데이트를 제어하는 데 사용됩니다. 다른 위치에서 동일한 이름의 구성을 만들려고 하면 오류가 발생합니다. 구성 이름은 리소스 그룹에서 고유해야 합니다.
유지 관리 구성을 성공적으로 만들었는지 확인하려면 az maintenance configuration list
를 사용하여 사용 가능한 유지 관리 구성을 쿼리할 수 있습니다.
az maintenance configuration list
--query "[].{Name:name, ID:id}"
--output table
유지 관리 되풀이를 매일, 매주 또는 매월로 표현할 수 있습니다. 다음 몇 가지 예를 참조하세요.
- 매일:
"Day"
또는"3Days"
의maintenance-window-recur-every
값입니다. - 매주:
"3Weeks"
또는"Week Saturday,Sunday"
의maintenance-window-recur-every
값입니다. - 매월:
"Month day23,day24"
,"Month Last Sunday"
또는Month Fourth Monday
의maintenance-window-recur-every
값입니다.
가상 머신 크기 집합
이 예에서는 매월 네 번째 월요일에 예약된 기간 5시간 동안 Virtual Machine Scale Sets에 대한 OS 이미지 범위의 myConfig라는 유지 관리 구성을 만듭니다.
az maintenance configuration create \
--resource-group myMaintenanceRG \
--resource-name myConfig \
--maintenance-scope osimage \
--location eastus \
--maintenance-window-duration "05:00" \
--maintenance-window-recur-every "Month Fourth Monday" \
--maintenance-window-start-date-time "2020-12-30 08:00" \
--maintenance-window-time-zone "Pacific Standard Time"
게스트 VM
이 예에서는 예약된 기간이 20일마다 2시간인 게스트 머신(VM 및 Azure Arc 지원 서버)으로 범위가 지정된 myConfig라는 유지 관리 구성을 만듭니다. 게스트 VM의 유지 관리 구성에 대해 자세히 알아봅니다.
az maintenance configuration create \
--resource-group myMaintenanceRG \
--resource-name myConfig \
--maintenance-scope InGuestPatch \
--location eastus \
--maintenance-window-duration "02:00" \
--maintenance-window-recur-every "20days" \
--maintenance-window-start-date-time "2022-12-30 07:00" \
--maintenance-window-time-zone "Pacific Standard Time" \
--install-patches-linux-parameters package-name-masks-to-exclude="ppt" package-name-masks-to-include="apt" classifications-to-include="Other" \
--install-patches-windows-parameters kb-numbers-to-exclude="KB123456" kb-numbers-to-include="KB123456" classifications-to-include="FeaturePack" \
--reboot-setting "IfRequired" \
--extension-properties InGuestPatchMode="User"
구성 할당
az maintenance assignment create
를 사용하여 머신에 구성을 할당합니다.
격리된 VM
구성의 ID를 사용하여 격리된 호스트 VM에 구성을 적용합니다. --resource-type virtualMachines
을 지정합니다. --resource-name
에 대한 VM 이름, --resource-group
에 대한 VM 리소스 그룹, --location
에 대한 VM 위치를 제공합니다.
az maintenance assignment create \
--resource-group myMaintenanceRG \
--location eastus \
--resource-name myVM \
--resource-type virtualMachines \
--provider-name Microsoft.Compute \
--configuration-assignment-name myConfig \
--maintenance-configuration-id "/subscriptions/{subscription ID}/resourcegroups/myMaintenanceRG/providers/Microsoft.Maintenance/maintenanceConfigurations/myConfig"
전용 호스트
전용 호스트에 구성을 적용하려면 --resource-type hosts
, --resource-parent-name
(호스트 그룹 이름 포함) 및 --resource-parent-type hostGroups
를 포함해야 합니다.
--resource-id
매개 변수는 호스트 ID입니다. az-vm-host-get-instance-view를 사용하여 전용 호스트의 ID를 가져올 수 있습니다.
az maintenance assignment create \
--resource-group myDHResourceGroup \
--resource-name myHost \
--resource-type hosts \
--provider-name Microsoft.Compute \
--configuration-assignment-name myConfig \
--maintenance-configuration-id "/subscriptions/{subscription ID}/resourcegroups/myDhResourceGroup/providers/Microsoft.Maintenance/maintenanceConfigurations/myConfig" \
--location eastus \
--resource-parent-name myHostGroup \
--resource-parent-type hostGroups
가상 머신 크기 집합
az maintenance assignment create \
--resource-group myMaintenanceRG \
--location eastus \
--resource-name myVMSS \
--resource-type virtualMachineScaleSets \
--provider-name Microsoft.Compute \
--configuration-assignment-name myConfig \
--maintenance-configuration-id "/subscriptions/{subscription ID}/resourcegroups/myMaintenanceRG/providers/Microsoft.Maintenance/maintenanceConfigurations/myConfig"
게스트 VM
az maintenance assignment create \
--resource-group myMaintenanceRG \
--location eastus \
--resource-name myVM \
--resource-type virtualMachines \
--provider-name Microsoft.Compute \
--configuration-assignment-name myConfig \
--maintenance-configuration-id "/subscriptions/{subscription ID}/resourcegroups/myMaintenanceRG/providers/Microsoft.Maintenance/maintenanceConfigurations/myConfig"
구성 확인
구성이 올바르게 적용되었는지 확인하거나 az maintenance assignment list
를 사용하여 현재 적용된 구성을 확인할 수 있습니다.
격리된 VM
az maintenance assignment list \
--provider-name Microsoft.Compute \
--resource-group myMaintenanceRG \
--resource-name myVM \
--resource-type virtualMachines \
--query "[].{resource:resourceGroup, configName:name}" \
--output table
전용 호스트
az maintenance assignment list \
--resource-group myDHResourceGroup \
--resource-name myHost \
--resource-type hosts \
--provider-name Microsoft.Compute \
--resource-parent-name myHostGroup \
--resource-parent-type hostGroups \
--query "[].{ResourceGroup:resourceGroup,configName:name}" \
--output table
가상 머신 크기 집합
az maintenance assignment list \
--provider-name Microsoft.Compute \
--resource-group myMaintenanceRG \
--resource-name myVMSS \
--resource-type virtualMachines \
--query "[].{resource:resourceGroup, configName:name}" \
--output table
게스트 VM
az maintenance assignment list \
--provider-name Microsoft.Compute \
--resource-group myMaintenanceRG \
--resource-name myVM \
--resource-type virtualMachines \
--query "[].{resource:resourceGroup, configName:name}" \
--output table
보류 중인 업데이트 확인
az maintenance update list
를 사용하여 보류 중인 업데이트가 있는지 확인합니다. VM이 포함된 구독의 ID가 되도록 --subscription
을 업데이트합니다.
업데이트가 없으면 명령은 Resource not found...StatusCode: 404
텍스트가 포함된 오류 메시지를 반환합니다.
업데이트가 있는 경우 여러 업데이트가 보류 중이더라도 명령은 하나만 반환합니다. 이 업데이트의 데이터는 개체로 반환됩니다.
[
{
"impactDurationInSec": 9,
"impactType": "Freeze",
"maintenanceScope": "Host",
"notBefore": "2020-03-03T07:23:04.905538+00:00",
"resourceId": "/subscriptions/9120c5ff-e78e-4bd0-b29f-75c19cadd078/resourcegroups/DemoRG/providers/Microsoft.Compute/hostGroups/demoHostGroup/hosts/myHost",
"status": "Pending"
}
]
격리된 VM
격리된 VM의 보류 중인 업데이트를 확인합니다. 이 예에서는 가독성을 위해 출력이 표 형식으로 지정됩니다.
az maintenance update list \
--subscription {subscription ID} \
--resource-group myMaintenanceRg \
--resource-name myVM \
--resource-type virtualMachines \
--provider-name Microsoft.Compute \
--output table
전용 호스트
전용 호스트의 보류 중인 업데이트를 확인합니다. 이 예제에서는 가독성을 위해 출력이 표 형식으로 지정됩니다. 리소스 값을 고유한 값으로 바꿉니다.
az maintenance update list \
--subscription {subscription ID} \
--resource-group myHostResourceGroup \
--resource-name myHost \
--resource-type hosts \
--provider-name Microsoft.Compute \
--resource-parentname myHostGroup \
--resource-parent-type hostGroups \
--output table
업데이트 적용
az maintenance apply update
를 사용하여 보류 중인 업데이트를 적용합니다. 성공하면 이 명령은 업데이트 세부 정보가 포함된 JSON을 반환합니다. 업데이트 적용을 위한 호출을 완료하는 데 최대 2시간이 걸릴 수 있습니다.
격리된 VM
격리된 VM에 업데이트를 적용하는 요청을 만듭니다.
az maintenance applyupdate create \
--subscription {subscriptionID} \
--resource-group myMaintenanceRG \
--resource-name myVM \
--resource-type virtualMachines \
--provider-name Microsoft.Compute
전용 호스트
전용 호스트에 업데이트를 적용합니다.
az maintenance applyupdate create \
--subscription {subscriptionID} \
--resource-group myHostResourceGroup \
--resource-name myHost \
--resource-type hosts \
--provider-name Microsoft.Compute \
--resource-parent-name myHostGroup \
--resource-parent-type hostGroups
가상 머신 크기 집합
확장 집합에 업데이트를 적용합니다.
az maintenance applyupdate create \
--subscription {subscriptionID} \
--resource-group myMaintenanceRG \
--resource-name myVMSS \
--resource-type virtualMachineScaleSets \
--provider-name Microsoft.Compute
업데이트 적용 상태를 확인합니다.
az maintenance applyupdate get
을 사용하여 업데이트 진행률을 확인할 수 있습니다.
마지막 업데이트 결과를 보려면 업데이트 이름으로 default
를 사용합니다. 또는 myUpdateName
의 이름을 az maintenance applyupdate create
실행 시 반환된 업데이트 이름으로 바꿉니다.
Status : Completed
ResourceId : /subscriptions/12ae7457-4a34-465c-94c1-17c058c2bd25/resourcegroups/TestShantS/providers/Microsoft.Comp
ute/virtualMachines/DXT-test-04-iso
LastUpdateTime : 1/1/2020 12:00:00 AM
Id : /subscriptions/12ae7457-4a34-465c-94c1-17c058c2bd25/resourcegroups/TestShantS/providers/Microsoft.Comp
ute/virtualMachines/DXT-test-04-iso/providers/Microsoft.Maintenance/applyUpdates/default
Name : default
Type : Microsoft.Maintenance/applyUpdates
LastUpdateTime
은 업데이트가 완료된 시간입니다. 사용자가 업데이트를 시작했는지 아니면 자체 유지 관리 기간을 사용하지 않아서 플랫폼이 업데이트를 시작했는지 여부를 나타냅니다. 유지 관리 구성을 통해 업데이트가 적용되지 않은 경우 LastUpdateTime
은 기본값을 표시합니다.
격리된 VM
az maintenance applyupdate get \
--subscription {subscriptionID} \
--resource-group myMaintenanceRG \
--resource-name myVM \
--resource-type virtualMachines \
--provider-name Microsoft.Compute \
--apply-update-name myUpdateName \
--query "{LastUpdate:lastUpdateTime, Name:name, ResourceGroup:resourceGroup, Status:status}" \
--output table
전용 호스트
az maintenance applyupdate get \
--subscription {subscriptionID} \
--resource-group myMaintenanceRG \
--resource-name myHost \
--resource-type hosts \
--provider-name Microsoft.Compute \
--resource-parent-name myHostGroup \
--resource-parent-type hostGroups \
--apply-update-name myUpdateName \
--query "{LastUpdate:lastUpdateTime, Name:name, ResourceGroup:resourceGroup, Status:status}" \
--output table
가상 머신 크기 집합
az maintenance applyupdate get \
--subscription {subscriptionID} \
--resource-group myMaintenanceRG \
--resource-name myVMSS \
--resource-type virtualMachineScaleSets \
--provider-name Microsoft.Compute \
--apply-update-name myUpdateName \
--query "{LastUpdate:lastUpdateTime, Name:name, ResourceGroup:resourceGroup, Status:status}" \
--output table
유지 관리 구성 삭제
유지 관리 구성을 삭제하려면 az maintenance configuration delete
를 사용합니다. 구성을 삭제하면 연결된 리소스에서 유지 관리 제어가 제거됩니다.
az maintenance configuration delete \
--subscription 1111abcd-1a11-1a2b-1a12-123456789abc \
-resource-group myResourceGroup \
--resource-name myConfig
다음 단계
자세한 내용은 Azure의 가상 머신 유지 관리를 참조하세요.