Strona korzysta z plików cookies w celu realizacji usług i zgodnie z Polityką Plików Cookies.
Data publikacji: 07-06-2022 | Autor: | Bartosz Bielawski |
W poprzednim artykule skupiliśmy się na narzędziach, które ułatwią nam pracę z aktualizacji na poziomie pojedynczego serwera. W tej części cyklu przyjrzymy się, jak w naszej organizacji możemy automatyzować proces instalowania aktualizacji w sposób kontrolowany i bez podejmowania niepotrzebnego ryzyka.
Automatyzacji dokonamy, wykorzystując trzy komponenty: serwer WSUS do zarządzania łatkami i ich publikowania, PowerShell DSC do kontrolowania ustawień na poszczególnych serwerach oraz zlecone zadania, które odpowiedzialne będą za instalowanie poprawek w oknie serwisowym.
W artykule skupimy się na konfiguracji końcówek, pomijając tym samym dbałość o ustawienia na serwerze WSUS. Do tych ostatnich wrócimy w kolejnym artykule, domykając tym samym opis narzędzi, które pozwolą na kontrolowane instalowania poprawek w ramach naszej organizacji.
Bezpieczne instalowanie poprawek
W trakcie budowania rozwiązania służącego do aktualizowania naszych serwerów musimy zatroszczyć się o ich bezpieczeństwo. Instalacja poprawek na serwerze plików czy MS SQL (a już z pewnością związany z nią restart) to ostatnie, czego życzylibyśmy sobie w czasie pracy. Musimy się więc upewnić, że poprawki instalowane będą jedynie o określonej przez nas porze. Druga sprawa to zachowanie serwerów po przeprowadzonym procesie. Bywa bowiem niestety tak, że aktualizacje, rozwiązując czy łatając problemy z bezpieczeństwem, mogą jednocześnie wywoływać niepożądane zachowania skutkujące np. obniżonym poziomem oferowanych usług lub wręcz uniemożliwiają ich świadczenie. Przykładowymi technikami pozwalającymi uniknąć tych problemów są:
Podział serwerów na grupy
Załóżmy, że w naszej organizacji wyróżnimy cztery grupy serwerów – grupę pilotażową oraz trzy grupy produkcyjne, z których każda następna obejmuje serwery istotniejsze dla naszej organizacji niż poprzednia. Przede wszystkim musimy zadbać o to, by serwery odpowiednio pogrupować w ramach WSUS. Posłuży nam do tego moduł PoshWSUS, o którym wspominaliśmy w poprzednim artykule. Zaczniemy od połączenia z naszym serwerem WSUS i utworzenia koniecznych grup. Dla wygody grupy związane z poszczególnymi falami umieścimy w grupie nadrzędnej Fale:
Connect-PSWSUSServer -WsusServer wsus.contoso.com -Port 8530
New-PSWSUSGroup -Name Fale
foreach ($fala in @(
'1_Pilot'
'2_Produkcja'
'3_Produkcja'
'4_Produkcja'
)) {
Get-PSWSUSGroup -Name Fale | New-PSWSUSGroup -Name $fala
}
Następnie musimy rozdzielić nasze serwery na poszczególne grupy, na podstawie których będziemy zatwierdzać lub instalować aktualizacje. Skorzystamy przy tym z kolejnego polecenia, Add-PSWSUSClientToGroup. Załóżmy, że informacja o grupach przechowywana jest w pliku CSV:
foreach ($serwer in Import-Csv -Path C:WsusKonfiguracjaGrup.csv) {
Add-PSWSUSClientToGroup -Group $serwer.Grupa -Computername $server.Nazwa
}
Potrzebować będziemy też innego zestawu grup – te związane z falami będą statyczne i zawierać będą komputery. Informacje o zaaprobowanych poprawkach będziemy przechowywać, wykorzystując grupy związane z danym okresem. Dla przykładu, jeśli zdecydujemy się na instalację poprawek raz na kwartał, potrzebować będziemy czterech grup rocznie, jednej dla każdego z okresów:
New-PSWSUSGroup -Name Okresy
foreach ($okres in @(
'2022Maj'
'2022Sierpien'
'2022Listopad'
'2023Luty'
)) {
Get-PSWSUSGroup -Name Okresy | New-PSWSUSGroup -Name $okres
}
By zapewnić spójność instalowanych poprawek, będziemy aprobować je na poziomie grupy związanej z okresem, a następnie listę zaaprobowanych poprawek skopiujemy do grupy związanej z serwerami –
dzięki temu nie ryzykujemy, że poszczególne grupy serwerów będą korzystać z innego zestawu poprawek w wyniku pomyłki ze strony operatora przygotowującego poszczególne fale:
$listaAktualizacji = @(Get-PSWSUSUpdate -ApprovedState `
LatestRevisionApproved -ComputerTargetGroups $aktualnyOkres -UpdateApprovalAction Install)
Approve-PSWSUSUpdate -Update $listaAktualizacji `
-Action Install -Group $fala
[...]
Autor zawodowo zajmuje się informatyką. Jest Microsoft MVP w dziedzinie PowerShella, blogerem oraz jednym z moderatorów forum dotyczącego skryptów w serwisie TechNet. Autor książki „Windows PowerShell 5.1 Biblia”
Pełna treść artykułu jest dostępna w papierowym wydaniu pisma.
Transmisje online zapewnia: StreamOnline