Najlepsze praktyki utrzymywania aktualności pakietów UNIX?

30
  • Jak aktualizujesz swoje serwery?
  • Korzystając z menedżera pakietów, takiego jak Aptitude , przechowujesz historię aktualizacji / instalacji, a jeśli tak, to jak to zrobić?
  • Czy podczas instalowania lub aktualizowania pakietów na wielu serwerach istnieją sposoby na jak najszybsze przyspieszenie procesu?
Aron Rotteveel
źródło

Odpowiedzi:

19

W systemach Linux / Debian cron-apt jest bardzo przydatnym narzędziem, które może zarządzać automatyzacją apt za pomocą crona.

Używam go do apt-get updatekażdego dnia i wysyłam mi e-mail, jeśli trzeba zainstalować nowe aktualizacje.

Oto krótkie i dobrze wykonane wprowadzenie do tego narzędzia .

paulgreg
źródło
Lubię mieć minimum automatycznie aktualizowanych pakietów, a najważniejsze to aktualizacje bezpieczeństwa. Z tego powodu dodaję do pliku konfiguracyjnego cron-apt: OPTIONS="-o Dir::Etc::SourceList=/etc/apt/security.sources.list" a następnie w /etc/apt/security.sources.list włączono tylko repozytoria bezpieczeństwa Debiana. W ten sposób wszystkie aktualizacje zabezpieczeń są automatycznie instalowane na czas (każdej nocy) i mogę wykonywać inne, bardziej ryzykowne aktualizacje, które mogą popsuć wszystko ręcznie.
Drew Stephens,
10

Jeśli chodzi o twoje trzecie pytanie: zawsze prowadzę lokalne repozytorium. Nawet jeśli dotyczy tylko jednej maszyny, oszczędza czas na wypadek konieczności ponownej instalacji (zazwyczaj używam czegoś takiego jak aptitude autoclean), a dla dwóch maszyn prawie zawsze się to opłaca.

W przypadku klastrów, którymi administruję, zazwyczaj nie prowadzę jawnych dzienników: pozwalam menedżerowi pakietów zrobić to za mnie. Jednak w przypadku tych komputerów (w przeciwieństwie do komputerów stacjonarnych) nie korzystam z automatycznych instalacji, więc mam swoje uwagi na temat tego, co zamierzałem zainstalować na wszystkich komputerach.

Mikeage
źródło
4
łał; czy wszyscy entuzjastycznie oceniają, bo jestem taki błyskotliwy, czy też ludzie ścigają się, by zdobyć odznakę? ;)
Mikeage
4

Używam apt-history do historii. Nie mam pojęcia, dlaczego to przydatne narzędzie nie jest domyślnie dołączone, jest to pierwszy pakiet, który wdrażam wraz z marionetką .

znak
źródło
Czym różni się apt-history od domyślnie zapisanych w / var / log?
jldugger
Nie wiedziałem o czym mówisz (z twojej odpowiedzi); Chyba poznałem apt-history i przyzwyczaiłem się do tego.
zaznacz
3

Każdej nocy uruchamiam / usr / bin / apt-get update -qq; / usr / bin / apt-get dist-upgrade -duyq jako zadanie crona. Rano mam powiadomienie o tym, które pakiety wymagają aktualizacji, a pliki zostały już pobrane na maszynę.

Następnie zazwyczaj robię migawkę maszyny (większość naszych serwerów jest wirtualna), przeprowadzam apt-get dist-upgrade , sprawdzam nagio i upewniam się, że wszystko nadal działa, i usuwam migawkę.

Na koniec przechowuję listę wszystkich zmian wprowadzonych na każdym serwerze na wiki , aby śledzić wszelkie problemy, które pojawią się później.

Jeśli chodzi o ograniczenie zbędnych pobrań, rozumiem, że możesz skonfigurować buforowanie serwera proxy (squid?) Między serwerami a Internetem, które będą buforować pliki .deb przy pierwszym dostępie . Być może jest to prostsze niż konfigurowanie lokalnego repozytorium pakietów - i ma tę dodatkową zaletę, że przyspiesza ogólne przeglądanie stron internetowych.

Brent
źródło
1

apt-cacher przydaje się do buforowania pakietów, buforuje je za pierwszym razem, gdy są potrzebne, zamiast wypełniać pełne lustro całego repozytorium, oszczędzając w ten sposób dysk i przepustowość. Jest to również przydatne, ponieważ przesyła strumieniowo pierwsze żądanie pakietu bezpośrednio do requestera, jednocześnie buforując go, więc nie ma dodatkowego opóźnienia.

Adam Gibbins
źródło
1

Prowadzenie lokalnego repozytorium to najlepszy sposób na zarządzanie dokładnie tym, co znajduje się na lokalnych serwerach. Umożliwia także łatwe wdrażanie niestandardowych backportów lub niestandardowych pakietów lokalnych. Wiem, że tworzę lokalne „meta-pakiety”, które są tylko ogromną liczbą zależności, które ułatwiają instalację lokalną. (np. „apt-get install local-mailserver”). Ma to również efekt uboczny polegający na umożliwieniu „wersji” zmian konfiguracji. (Do bardziej skomplikowanego zarządzania konfiguracją potrzebujesz czegoś takiego jak Puppet)

pjz
źródło
1

W przypadku naszych pudeł z systemem Windows mamy lokalny serwer WSUS i standardowe okno do stosowania miesięcznych poprawek. W przypadku systemów Linux (RHEL) w kampusie mamy serwer satelitarny RHN, do którego wszyscy są przyłączeni. Zapewnia to przyjemny pulpit nawigacyjny każdego połączonego systemu, którym administrujesz, a także niezastosowane aktualizacje dla każdego systemu. Dla tych, którzy są w marionetce, wypychamy skrypt, który automatycznie stosuje poprawki podczas zwykłego okna i wysyła powiadomienie e-mail z wynikami.

Scott Pack
źródło
0

Możesz mieć lokalne repozytorium i skonfigurować wszystkie serwery, aby wskazywały na niego aktualizacje. Nie tylko zyskujesz prędkość pobierania lokalnego, ale także kontrolujesz, które oficjalne aktualizacje chcesz zainstalować w swojej infrastrukturze, aby zapobiec problemom ze zgodnością.

Po stronie systemu Windows korzystałem z usług Windows Server Update Services z bardzo satysfakcjonującymi wynikami.

macbirdie
źródło
0

Korzystając z menedżera pakietów, takiego jak Aptitude, przechowujesz historię aktualizacji / instalacji, a jeśli tak, to jak to zrobić?

apt zachowuje dziennik / var / log / apt /, a dpkg używa /var/log/dpkg.log. W szczególności dpkg jest dość parsowalny.

jldugger
źródło
0

W OpenSuSE Linux, SLES i Novell OES (wszystkie produkty oparte na SuSE) mamy skrypt, który uruchamia zypper i szuka pakietów, które należy zaktualizować. Kiedy go znajdzie, przesyła bilet do JIRA i przypisuje go sysadmins. Po zainstalowaniu aktualizacji zamykamy bilet, co pozostawia ślad audytu, który informuje nas, kiedy został zainstalowany i przez kogo. Można to pogodzić / potwierdzić z logami zypper i sudo, które są scentralizowane na serwerze syslogging.

Karl Katzke
źródło