Administrator systemu Linux - aktualizacje systemu
System CentOS 7 można zaktualizować na trzy sposoby -
- Manually
- Automatically
- Aktualizuj ręcznie w przypadku poważnych problemów z bezpieczeństwem i skonfiguruj aktualizacje automatyczne
W środowisku produkcyjnym zaleca się aktualizację ręczną dla serwerów produkcyjnych. Lub przynajmniej ustal plan aktualizacji, aby administrator mógł zapewnić usługi niezbędne dla operacji biznesowych.
Jest prawdopodobne, że prosta aktualizacja zabezpieczeń może powodować powtarzające się problemy z popularnymi aplikacjami, które wymagają aktualizacji i ponownej konfiguracji przez administratora. Dlatego męcz się planowaniem automatycznych aktualizacji w środowisku produkcyjnym przed rozpoczęciem testowania na serwerach programistycznych i komputerach stacjonarnych.
Ręcznie zaktualizuj CentOS 7
Aby zaktualizować CentOS 7, będziemy chcieli zapoznać się z poleceniem yum .yumsłuży do obsługi repozytoriów pakietów w CentOS 7. yum jest narzędziem powszechnie używanym do -
- Zaktualizuj system Linux CentOS 7
- Wyszukaj paczki
- Zainstaluj pakiety
- Wykryj i zainstaluj wymagane zależności dla pakietów
Aby używać yum do aktualizacji, twój serwer CentOS musi być połączony z Internetem. Większość konfiguracji zainstaluje system podstawowy, a następnie użyje programu yum do wysłania zapytania do głównego repozytorium CentOS w celu uzyskania dodatkowych funkcji w pakietach i zastosowania aktualizacji systemu.
Skorzystaliśmy już z programu yum, aby zainstalować kilka pakietów. Korzystając z yum , zawsze będziesz musiał to robić jako użytkownik root. Lub użytkownik z dostępem roota. Poszukajmy i zainstalujmy łatwy w użyciu edytor tekstu o nazwie nano .
[root@centos rdc]# yum search nano
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirror.rackspace.com
* epel: mirror.chpc.utah.edu
* extras: repos.forethought.net
* updates: repos.forethought.net
======================================================================
N/S matched: nano
======================================================================
nano.x86_64 : A small text editor
nodejs-nano.noarch : Minimalistic couchdb driver for Node.js
perl-Time-Clock.noarch : Twenty-four hour clock object with nanosecond precision
Name and summary matches only, use "search all" for everything.
[root@centos rdc]#
Teraz zainstalujmy edytor tekstu nano .
[root@centos rdc]# yum install nano
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirror.keystealth.org
* epel: pubmirror1.math.uh.edu
* extras: centos.den.host-engine.com
* updates: repos.forethought.net
Resolving Dependencies
--> Running transaction check
---> Package nano.x86_64 0:2.3.1-10.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch
Version Repository Size
================================================================================
Installing:
nano x86_64
2.3.1-10.el7 base 440 k
Transaction Summary
Install 1 Package
Total download size: 440 k
Installed size: 1.6 M
Is this ok [y/d/N]: y
Downloading packages:
nano-2.3.1-10.el7.x86_64.rpm
| 440 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : nano-2.3.1-10.el7.x86_64
1/1
Verifying : nano-2.3.1-10.el7.x86_64
1/1
Installed:
nano.x86_64 0:2.3.1-10.el7
Complete!
[root@centos rdc]#
Zainstalowaliśmy edytor tekstu nano. Ta metoda, IMO, jest o wiele łatwiejsza niż wyszukiwanie narzędzi w witrynach internetowych i ręczne uruchamianie instalatorów. Ponadto repozytoria używają podpisów cyfrowych do sprawdzania poprawności pakietów, zapewniając, że pochodzą z zaufanego źródła z yum. Do administratora należy weryfikacja autentyczności podczas ufania nowym repozytoriom. Dlatego uważa się, że najlepszą praktyką jest znużenie się repozytoriami stron trzecich.
Yum można również użyć do usunięcia paczki.
[root@centos rdc]# yum remove nano
Loaded plugins: fastestmirror, langpacks
Resolving Dependencies
--> Running transaction check
---> Package nano.x86_64 0:2.3.1-10.el7 will be erased
--> Finished Dependency Resolution
Dependencies Resolved
Teraz sprawdźmy dostępność aktualizacji.
[root@centos rdc]# yum list updates
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirror.keystealth.org
* epel: pubmirror1.math.uh.edu
* extras: centos.den.host-engine.com
* updates: repos.forethought.net
Updated Packages
NetworkManager.x86_64 1:1.4.0-17.el7_3 updates
NetworkManager-adsl.x86_64 1:1.4.0-17.el7_3 updates
NetworkManager-glib.x86_64 1:1.4.0-17.el7_3 updates
NetworkManager-libnm.x86_64 1:1.4.0-17.el7_3 updates
NetworkManager-team.x86_64 1:1.4.0-17.el7_3 updates
NetworkManager-tui.x86_64 1:1.4.0-17.el7_3 updates
NetworkManager-wifi.x86_64 1:1.4.0-17.el7_3 updates
audit.x86_64 2.6.5-3.el7_3.1 updates
audit-libs.x86_64 2.6.5-3.el7_3.1 updates
audit-libs-python.x86_64
Jak pokazano, mamy do zainstalowania kilkadziesiąt aktualizacji. W rzeczywistości jest łącznie około 100 aktualizacji, ponieważ nie skonfigurowaliśmy jeszcze automatycznych aktualizacji. Dlatego zainstalujmy wszystkie oczekujące aktualizacje.
[root@centos rdc]# yum update
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.usc.edu
* epel: pubmirror1.math.uh.edu
* extras: repos.forethought.net
* updates: repos.forethought.net
Resolving Dependencies
--> Running transaction check
---> Package NetworkManager.x86_64 1:1.4.0-14.el7_3 will be updated
---> Package NetworkManager.x86_64 1:1.4.0-17.el7_3 will be an update
selinux-policy noarch 3.13.1102.el7_3.15 updates 414 k
selinux-policy-targeted noarch 3.13.1102.el7_3.15 updates 6.4 M
systemd x86_64 21930.el7_3.7 updates 5.2 M
systemd-libs x86_64 21930.el7_3.7 updates 369 k
systemd-python x86_64 21930.el7_3.7 updates 109 k
systemd-sysv x86_64 21930.el7_3.7 updates 63 k
tcsh x86_64 6.18.01-13.el7_3.1 updates 338 k
tzdata noarch 2017a1.el7 updates 443 k
tzdata-java noarch 2017a1.el7 updates 182 k
wpa_supplicant x86_64 1:2.021.el7_3 updates 788 k
Transaction Summary
===============================================================================
Install 2 Packages
Upgrade 68 Packages
Total size: 196 M
Total download size: 83 M
Is this ok [y/d/N]:
Po naciśnięciu klawisza „y” rozpocznie się aktualizacja CentOS 7. Ogólny proces, przez który przechodzi yum podczas aktualizacji, to -
- Sprawdza aktualne pakiety
- Przeszukuje repozytorium w poszukiwaniu zaktualizowanych pakietów
- Oblicza zależności potrzebne dla zaktualizowanych pakietów
- Pobiera aktualizacje
- Instaluje aktualizacje
Teraz upewnijmy się, że nasz system jest aktualny -
[root@centos rdc]# yum list updates
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* updates: mirror.compevo.com
[root@centos rdc]#
Jak widać, nie ma na liście żadnych aktualizacji.
Skonfiguruj aktualizacje automatyczne dla YUM
W środowisku przedsiębiorstwa, jak wspomniano wcześniej, automatyczne aktualizacje mogą być preferowaną metodą instalacji lub nie. Przyjrzyjmy się krokom konfigurowania automatycznych aktualizacji za pomocą yum.
Najpierw instalujemy pakiet o nazwie yum-cron .
[root@centos rdc]# yum -y install yum-cron
Install 1 Package
Total download size: 61 k
Installed size: 51 k
Downloading packages:
yum-cron-3.4.3-150.el7.centos.noarch.rpm
| 61 kB 00:00:01
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : yum-cron-3.4.3-150.el7.centos.noarch
1/1
Verifying : yum-cron-3.4.3-150.el7.centos.noarch
1/1
Installed:
yum-cron.noarch 0:3.4.3-150.el7.centos
Complete!
[root@centos rdc]#
Domyślnie yum-cron pobiera tylko aktualizacje i nie instaluje ich. To, czy aktualizacje mają być instalowane automatycznie, należy do administratora. Największym zastrzeżeniem jest: niektóre aktualizacje wymagają ponownego uruchomienia systemu. Ponadto niektóre aktualizacje mogą wymagać zmiany konfiguracji przed ponownym uruchomieniem usług.
Aktualizacja zależności może potencjalnie spowodować rekurencyjny problem w następującej sytuacji -
Yum zaleca aktualizację dla pewnej biblioteki
Biblioteka obsługuje tylko Apache Server 2.4, ale mamy serwer 2.3
Nasza witryna handlowa opiera się na określonej wersji PHP
Nowa wersja Apache zainstalowana dla biblioteki wymaga aktualizacji PHP
Nasze produkcyjne aplikacje internetowe nie zostały jeszcze przetestowane z nowszą wersją PHP
Yum może kontynuować i automatycznie aktualizować Apache i PHP bez powiadomienia, chyba że skonfigurowano inaczej.
Jeśli wszystkie 5 scenariuszy się rozegra, może to spowodować wszystko, od dużego bólu głowy rano do możliwego naruszenia bezpieczeństwa ujawniającego dane użytkownika. Chociaż powyższy przykład jest swego rodzaju idealną burzą, nigdy nie chcemy, aby taki scenariusz się sprawdził.
Dostęp do możliwych scenariuszy potencjalnej utraty przychodów od czasu potrzebnego do przywrócenia usług z powodu ewentualnych przestojów spowodowanych ponownym uruchomieniem aktualizacji i rekonfiguracją należy do Administratora. Ta praktyka może nie być wystarczająco konserwatywna w przypadku, powiedzmy, witryny e-commerce o wartości wielu milionów dolarów dziennie, z milionami klientów.
Teraz skonfigurujmy yum-cron, aby automatycznie instalował aktualizacje systemu.
[root@centos rdc]# vim /etc/yum/yum-cron.conf
# Whether updates should be applied when they are available. Note
# that download_updates must also be yes for the update to be applied.
apply_updates = yes
Chcemy zmienić apply_updates = no na apply_updates = yes . Teraz skonfigurujmy interwał aktualizacji dla yum-cron .
Ponownie, to, czy używać automatycznych aktualizacji i instalować aktualizacje na żądanie, może być mieczem obosiecznym i musi być rozważone przez administratora w każdej unikalnej sytuacji.