Jak programowo zarządzać aktualizacjami serwerów z obsługą usługi Azure Arc
W tym artykule przedstawiono proces korzystania z interfejsu API REST platformy Azure w celu wyzwolenia oceny i wdrożenia aktualizacji na serwerach z obsługą usługi Azure Arc za pomocą usługi Azure Update Manager na platformie Azure. Jeśli dopiero zaczynasz korzystać z usługi Azure Update Manager i chcesz dowiedzieć się więcej, zobacz omówienie rozwiązania Update Manager. Aby zarządzać maszynami wirtualnymi platformy Azure przy użyciu interfejsu API REST platformy Azure, zobacz Jak programowo pracować z maszynami wirtualnymi platformy Azure.
Rozwiązanie Update Manager na platformie Azure umożliwia programowe używanie interfejsu API REST platformy Azure do uzyskiwania dostępu. Ponadto możesz użyć odpowiednich poleceń REST z poziomu programu Azure PowerShell i interfejsu wiersza polecenia platformy Azure.
Obsługa interfejsu API REST platformy Azure do zarządzania serwerami z obsługą usługi Azure Arc jest dostępna za pośrednictwem rozszerzenia maszyny wirtualnej programu Update Manager.
Ocena aktualizacji
Aby wyzwolić ocenę aktualizacji na serwerze z obsługą usługi Azure Arc, określ następujące żądanie POST:
POST on `subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.HybridCompute/machines/machineName/assessPatches?api-version=2020-08-15-preview`
{
}
Aby określić żądanie POST, możesz użyć polecenia az rest interfejsu wiersza polecenia platformy Azure.
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
Format treści żądania dla wersji 2020-08-15 jest następujący:
{
}
Wdrażanie aktualizacji
Aby wyzwolić wdrożenie aktualizacji na serwerze z obsługą usługi Azure Arc, określ następujące żądanie POST:
POST on `subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.HybridCompute/machines/machineName/installPatches?api-version=2020-08-15-preview`
Treść żądania
W poniższej tabeli opisano elementy treści żądania:
Właściwości | opis |
---|---|
maximumDuration |
Maksymalna ilość czasu w minutach, jaką może potrwać operacja aktualizacji systemu operacyjnego. Musi to być ciąg czasu trwania zgodny ze standardem ISO 8601, taki jak PT100M . |
rebootSetting |
Flaga do stanu, jeśli należy ponownie uruchomić maszynę i jeśli instalacja aktualizacji systemu operacyjnego gościa wymaga jej ukończenia. Dopuszczalne wartości to: IfRequired, NeverReboot, AlwaysReboot . |
windowsParameters |
Opcje parametrów aktualizacji systemu operacyjnego gościa na maszynie z obsługiwanym systemem operacyjnym Microsoft Windows Server. |
windowsParameters - classificationsToInclude |
Lista kategorii lub klasyfikacji aktualizacji systemu operacyjnego, które mają być stosowane, zgodnie z obsługiwanymi i udostępnianymi przez system operacyjny Windows Server. Dopuszczalne wartości to: Critical, Security, UpdateRollup, FeaturePack, ServicePack, Definition, Tools, Update |
windowsParameters - kbNumbersToInclude |
Lista identyfikatorów bazy wiedzy usługi Windows Update, które są dostępne dla maszyny i które są wymagane do zainstalowania. Jeśli uwzględniono jakiekolwiek "classificationsToInclude", instalowane są bazy wiedzy dostępne w kategorii. Opcja "kbNumbersToInclude" to opcja udostępniania listy określonych identyfikatorów KB na przestrzeni i powyżej, które chcesz zainstalować. Na przykład: 1234 . |
windowsParameters - kbNumbersToExclude |
Lista identyfikatorów bazy wiedzy usługi Windows Update, które są dostępne dla maszyny i które nie powinny być zainstalowane. Jeśli uwzględnisz jakiekolwiek "classificationsToInclude", bazy wiedzy dostępne w kategorii zostaną zainstalowane. Opcja "kbNumbersToExclude" to opcja udostępniania listy określonych identyfikatorów KB, które chcesz upewnić się, że nie są zainstalowane. Na przykład: 5678 . |
maxPatchPublishDate |
Służy do instalowania poprawek opublikowanych w dniu lub przed tą maksymalną datą publikacji. |
linuxParameters |
Opcje parametrów aktualizacji systemu operacyjnego gościa, gdy maszyna jest uruchomiona obsługiwana dystrybucja systemu Linux |
linuxParameters - classificationsToInclude |
Lista kategorii lub klasyfikacji aktualizacji systemu operacyjnego, które mają być stosowane, zgodnie z obsługiwanymi i udostępnianymi przez używanego menedżera pakietów systemu operacyjnego Linux. Dopuszczalne wartości to: Critical, Security, Others . Aby uzyskać więcej informacji, zobacz Menedżer pakietów systemu Linux i obsługa systemu operacyjnego. |
linuxParameters - packageNameMasksToInclude |
Lista pakietów systemu Linux, które są dostępne dla maszyny i należy je zainstalować. Jeśli uwzględnisz jakiekolwiek pakiety "classificationsToInclude", pakiety dostępne w kategorii zostaną zainstalowane. Element "packageNameMasksToInclude" to opcja udostępniania listy pakietów w górę i powyżej, które mają zostać zainstalowane. Na przykład: mysql, libc=1.0.1.1, kernel* . |
linuxParameters - packageNameMasksToExclude |
Lista pakietów systemu Linux dostępnych dla maszyny i nie powinna być zainstalowana. Jeśli uwzględnisz jakiekolwiek pakiety "classificationsToInclude", pakiety dostępne w kategorii zostaną zainstalowane. "packageNameMasksToExclude" to opcja udostępniania listy określonych pakietów, które mają być niezainstalowane. Na przykład: mysql, libc=1.0.1.1, kernel* . |
Aby określić żądanie POST, możesz użyć następującego wywołania interfejsu API REST platformy Azure z prawidłowymi parametrami i wartościami.
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"
]
}
}'
Tworzenie harmonogramu konfiguracji konserwacji
Aby utworzyć harmonogram konfiguracji konserwacji, określ następujące żądanie PUT:
PUT on `/subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.Maintenance/maintenanceConfigurations/<maintenanceConfigurationsName>?api-version=2021-09-01-preview`
Treść żądania
W poniższej tabeli opisano elementy treści żądania:
Właściwości | opis |
---|---|
id |
W pełni kwalifikowany identyfikator zasobu |
location |
Pobiera lub ustawia lokalizację zasobu |
name |
Nazwa zasobu |
properties.extensionProperties |
Pobiera lub ustawia rozszerzenieWłaściwości konserwacjiKonfiguracja |
properties.maintenanceScope |
Pobiera lub ustawia konserwacjęZakres konfiguracji |
properties.maintenanceWindow.duration |
Czas trwania okna obsługi w formacie HH:mm. Jeśli nie zostanie podana, wartość domyślna będzie używana na podstawie podanego zakresu konserwacji. Przykład: 05:00. |
properties.maintenanceWindow.expirationDateTime |
Obowiązująca data wygaśnięcia okna obsługi w formacie RRRR-MM-DD hh:MM. Okno jest tworzone w strefie czasowej podanej w celu oszczędności światła dziennego zgodnie z tym strefą czasową. Należy ustawić datę wygaśnięcia na datę przyszłej. Jeśli nie zostanie podana, zostanie ustawiona maksymalna data/godzina 9999-12-31 23:59:59. |
properties.maintenanceWindow.recurEvery |
Szybkość, z jaką okno obsługi ma się powtarzać. Stawka może być wyrażona jako harmonogramy dzienne, tygodniowe lub miesięczne. Harmonogramy dzienne można sformatować jako recurEvery: [Frequency as integer]['Day(s)']. Jeśli nie podano żadnej częstotliwości, domyślna częstotliwość to 1. Przykłady harmonogramu codziennego są recurEvery: Day, recurEvery: 3Days. Harmonogram tygodniowy jest sformatowany jako recurEvery: [Frequency as integer]['Week(s)'] [Opcjonalna lista rozdzielana przecinkami dni powszednie poniedziałek-niedziela]. Przykłady harmonogramu tygodniowego to recurEvery: 3Weeks, recurEvery: Week Saturday, Sunday. Harmonogramy miesięczne można formatować jako [Frequency as integer]['Month(s)'] [Przecinki rozdzielone listą dni miesiąca] lub [Frequency as integer]['Month(s)'] [Week of Month(s)] [Week of Month (Pierwszy, Drugi, Trzeci, Czwarty, Last)] [Weekday Monday-Sunday]. Przykłady harmonogramu miesięcznego to recurEvery: Month, recurEvery: 2Months, recurEvery: Month day23, day24, recurEvery: Month Last Sunday, recurEvery: Month Czwarty poniedziałek. |
properties.maintenanceWindow.startDateTime |
Data rozpoczęcia okna obsługi w formacie RRRR-MM-DD hh:mm. Możesz ustawić datę rozpoczęcia na bieżącą datę lub datę przyszłą. Okno zostanie utworzone w podanej strefie czasowej i dostosowane do oszczędności światła dziennego zgodnie z tym strefą czasową. |
properties.maintenanceWindow.timeZone |
Nazwa strefy czasowej. Listę stref czasowych można uzyskać, wykonując polecenie [System.TimeZoneInfo]:GetSystemTimeZones() w programie PowerShell. Przykład: Pacyfik (czas standardowy), UTC, Europa (czas standardowy), Korea (czas standardowy), Cen (Cen). Australia (czas standardowy). |
properties.namespace |
Pobiera lub ustawia przestrzeń nazw zasobu |
properties.visibility |
Pobiera lub ustawia widoczność konfiguracji. Wartość domyślna to "Niestandardowy" |
systemData |
Metadane usługi Azure Resource Manager zawierające informacje createdBy i modifiedBy. |
tags |
Pobiera lub ustawia tagi zasobu |
type |
Typ zasobu |
Aby określić żądanie POST, możesz użyć następującego wywołania interfejsu API REST platformy Azure z prawidłowymi parametrami i wartościami.
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"
]
}
}
}
}'
Kojarzenie maszyny wirtualnej z harmonogramem
Aby skojarzyć maszynę wirtualną z harmonogramem konfiguracji konserwacji, określ następujące żądanie PUT:
PUT on `<ARC or Azure VM resourceId>/providers/Microsoft.Maintenance/configurationAssignments/<configurationAssignment name>?api-version=2021-09-01-preview`
Aby określić żądanie PUT, możesz użyć następującego wywołania interfejsu API REST platformy Azure z prawidłowymi parametrami i wartościami.
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"
}'
Usuwanie maszyny z harmonogramu
Aby usunąć maszynę z harmonogramu, pobierz wszystkie nazwy przypisań konfiguracji dla maszyny, która została utworzona w celu skojarzenia maszyny z bieżącym harmonogramem z usługi Azure Resource Graph zgodnie z wykazem:
maintenanceresources
| where type =~ "microsoft.maintenance/configurationassignments"
| where properties.maintenanceConfigurationId =~ "<maintenance configuration Resource ID>"
| where properties.resourceId =~ "<Machine Resource Id>"
| project name, id
Po uzyskaniu nazwy z powyższego usuń przypisanie konfiguracji, postępując zgodnie z żądaniem DELETE —
DELETE on `<ARC or Azure VM resourceId>/providers/Microsoft.Maintenance/configurationAssignments/<configurationAssignment name>?api-version=2021-09-01-preview`
Następne kroki
- Aby wyświetlić dzienniki oceny aktualizacji i wdrażania wygenerowane przez menedżera aktualizacji, zobacz dzienniki zapytań.
- Aby rozwiązać problemy, zobacz Rozwiązywanie problemów z menedżerem aktualizacji.