Udostępnij przez


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:

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

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 określająca, czy należy ponownie uruchomić maszynę, wskazuje, czy menedżer aktualizacji Azure (AUM) powinien ponownie uruchomić maszynę w ramach zadania aktualizacyjnego. 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 na komputerze i które trzeba zainstalować. Jeśli uwzględniono jakiekolwiek "classificationsToInclude", instalowane są bazy wiedzy dostępne w kategorii. Opcja "kbNumbersToInclude" służy do udostępniania listy określonych identyfikatorów KB, które chcesz zainstalować dodatkowo. Na przykład: 1234.
windowsParameters - kbNumbersToExclude Lista identyfikatorów KB usługi Windows Update, które są dostępne dla komputera 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 dla aktualizacji systemu operacyjnego gościa podczas gdy na maszynie jest uruchomiona wspierana dystrybucja Linuxa
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. Opcja "packageNameMasksToInclude" pozwala na udostępnienie listy dodatkowych pakietów, które chcesz zainstalować. Na przykład: mysql, libc=1.0.1.1, kernel*.
linuxParameters - packageNameMasksToExclude Lista pakietów systemu Linux dostępnych dla maszyny, których nie należy instalować. 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ć polecenia az rest interfejsu wiersza polecenia platformy Azure.

az rest --method post --url https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/Test/providers/Microsoft.HybridCompute/machines/WIN-8/installPatches?api-version=2020-08-15-preview @body.json

Format treści żądania dla wersji 2020-08-15 jest następujący:

{
        "maximumDuration": "PT120M",
        "rebootSetting": "IfRequired",
        "windowsParameters": {
          "classificationsToInclude": [
            "Security",
            "UpdateRollup",
            "FeaturePack",
            "ServicePack"
          ],
          "kbNumbersToInclude": [
            "11111111111",
            "22222222222222"
          ],
          "kbNumbersToExclude": [
            "333333333333",
            "55555555555"
          ]
        }
  }

Tworzenie harmonogramu 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 właściwości rozszerzenia konfiguracji konserwacji
properties.maintenanceScope Pobiera lub ustawia zakres konserwacji konfiguracji
properties.maintenanceWindow.duration Czas trwania okna konserwacji 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 konserwacyjnego w formacie RRRR-MM-DD hh:mm. Okno jest tworzone w podanej strefie czasowej z uwzględnieniem oszczędności światła dziennego zgodnie z tą strefą czasową. Należy ustawić datę wygaśnięcia na datę przyszłą. Jeśli nie zostanie podana, zostanie ustawiona maksymalna data/godzina 9999-12-31 23:59:59.
properties.maintenanceWindow.recurEvery Częstotliwość, z jaką zakres czasowy konserwacji ma się powtarzać. Stawka może być przedstawiona w harmonogramach dziennych, tygodniowych lub miesięcznych. Harmonogramy dzienne można sformatować jako recurEvery: [Częstotliwość jako liczba całkowita]['Dzień(dni)']. Jeśli nie podano żadnej częstotliwości, domyślna częstotliwość to 1. Przykłady harmonogramu codziennego są recurEvery: Day, recurEvery: 3Days. Harmonogramy tygodniowe są formatowane jako recurEvery: [Częstotliwość jako liczba całkowita]['Tydzień(tygodnie)'] [Opcjonalna lista dni tygodnia rozdzielana przecinkami od poniedziałku do niedzieli]. Przykłady harmonogramu tygodniowego to recurEvery: 3Weeks, recurEvery: Week Saturday, Sunday. Harmonogramy miesięczne można formatować jako [Częstotliwość jako liczba całkowita]['Miesiąc(e)'] [Lista dni miesiąca oddzielona przecinkami] lub [Częstotliwość jako liczba całkowita]['Miesiąc(e)'] [Tydzień Miesiąca (Pierwszy, Drugi, Trzeci, Czwarty, Ostatni)] [Dzień tygodnia od poniedziałku do niedzieli]. Przykłady harmonogramu miesięcznego to powtarzalność: miesiąc, powtarzalność: co 2 miesiące, powtarzalność: każdego miesiąca 23 dnia, 24 dnia, powtarzalność: ostatnią niedzielę miesiąca, powtarzalność: czwarty poniedziałek miesiąca.
properties.maintenanceWindow.startDateTime Data rozpoczęcia okna konserwacji 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 zmiany czasu letniego zgodnie z tą 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: Czas Pacyficzny, UTC, Czas Środkowoeuropejski, Czas Koreański, Czas Centralny. Australia (czas standardowy).
properties.namespace Pobiera lub ustawia przestrzeń nazwową 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
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"

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`
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"

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:

az maintenance configuration delete \
   --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"

Następne kroki