Zarządzanie aktualizacjami na setkach serwerów Debiana

20

Jak myślisz, jakie są najlepsze praktyki utrzymywania aktualności dziesiątek (jeśli nie setek) serwerów Debiana? Pamiętając, że:

  • Istnieją grupy serwerów (tj. Identyczne serwery WWW, serwery DB, ...)
  • Może być kilka problemów z Debianem (lenny, etch)
  • Uruchomienie pętli na wszystkich serwerach i wykonanie aktualizacji i aktualizacji apt-get jest niedopuszczalne (ponieważ właśnie to robię w tej chwili :)) Powinno być lepsze niż to!

Obecnie, kiedy w końcu skończę wszystkie aktualizacje, publikowana jest nowa aktualizacja zabezpieczeń i muszę to zrobić od nowa.

Z góry dziękujemy społeczności serverfault!

Falken
źródło
1
Posiadaj jeden serwer lokalny do przechowywania najnowszych pakietów i używaj go jako apt repozytorium, pozwoli to zaoszczędzić przepustowość i czas, użyj lokalnego repozytorium do dystrybucji aktualizacji na lokalne serwery. Aha, i używaj aptitude zamiast apt-get.
Karolis T.
3
Tak dla lustra i nie dla umiejętności. Obecnie brak korzyści. Nie ma nawet super mocy krów.
David Pashley,

Odpowiedzi:

12

Używam apt-dater do zarządzania aktualizacją wszystkich moich pudeł Debiana. Wydaje się, że wystarcza dobrze. Nie próbowałem jednak skalować go do setek hostów.

Haakon
źródło
1
Ciekawy produkt, choć nigdy o nim nie słyszałem.
wzzrd
To jest bardzo dobre ! Promowałbym tę odpowiedź, gdyby apt-dater nie miał pakietu lokalnego do zainstalowania na każdym hoście ... i nie rozumiem, dlaczego jest nawet potrzebny.
Falken
Po przetestowaniu to narzędzie jest niesamowite! Ale działa na dziesiątki serwerów, a nie setki. Podczas obsługi wielu maszyn wszystko staje się niestabilne i wolne ... szkoda.
Falken
1
Promuję tę odpowiedź, ponieważ w końcu udało mi się jej użyć, ale inne rozwiązania są również całkiem dobre, w zależności od twoich preferencji / środowiska!
Falken,
2
To był domyślny agent ssh na Ubuntu, który wszystko popełnił. Po prostu go usunąłem i użyłem łatwego „ssh-add”. Cała powolność zniknęła!
Falken,
3

Próbowaliśmy używać marionetki do aktualizacji poprawek bezpieczeństwa w nieistotnych pakietach. Uruchomilibyśmy apticron, aby wysłać pocztą e-mail listę aktualizacji dla każdego serwera, a następnie codziennie uruchamiamy skrypt, który połączył te aktualizacje w plik manifestu marionetkowego, który dał pakiet i wersję dla każdej dystrybucji. Spowoduje to zaktualizowanie wiązki plików na poszczególnych serwerach i uruchomienie skryptu aktualizacji, gdy pakiet będzie wymagał aktualizacji. Działa to dość dobrze, ale nie przetestowaliśmy go tak bardzo, jak bym chciał. W tym schemacie ominęło się ograniczenie Puppet polegające na tym, że ten sam zasób nie został zdefiniowany w wielu miejscach.

Nie czułem się też komfortowo z automatycznymi aktualizacjami takich rzeczy jak MySQL lub PostgreSQL, gdzie przypadkowa aktualizacja wyłączyła usługę, być może w środku dnia. Nadal będą wymagały ręcznych aktualizacji.

Spacewalk i Debmarshall wyglądają jak odpowiednia alternatywa dla naszego programu lalek.

David Pashley
źródło
Brak komentarza do odpowiedzi, po prostu krzyk „spóźnionego„ szczęśliwego 10 000 dnia ”.
Evan Anderson
1

Najwyraźniej Spacewalk ma teraz wstępne wsparcie dla Debiana. Być może to razem z Puppet będzie moim punktem wyjścia. Jestem prawie pewien, że facet rozwijający obsługę Debiana dla Spacewalk pokocha cię za współpracę z nim przy przenoszeniu wsparcia Debiana na wyższy poziom.

wzzrd
źródło
1

W sposób oparty na systemie ściągającym, takim jak Puppet, istnieją również bcfg2 i cfengine. Jeden lub drugi z nich może dobrze pasować do twoich potrzeb. W tej chwili wdrażam bcfg2 w moim laboratorium.

Phil Miller
źródło
1

Rozwiązanie może dać func

drAlberT
źródło
Nie bym się zabawił. Jest to sposób na niedojrzałe wykorzystanie produkcyjne, choć przyznaję, że to obiecuje.
wzzrd
func jest używany przez szewca, nie jest niedojrzały IMHO. cobbler jest intensywnie używany przez specjalistów RH i technologie te zostaną uwzględnione w następnej wersji RHEL. Być może nie jest to „formalnie” gotowa produkcja, ale w rzeczywistości jest już prawie gotowa.
drAlberT
0

Nie jestem pewien, jakiego rodzaju rozwiązania oczekujesz. Prawdopodobnie wiesz o zadaniach crona, ale nie aktualizowałbym systemów w ciemno, ponieważ potrzebne są ludzkie interwencje (i dlatego płacą ci za to, prawda?)

Jeśli masz całkowicie identyczne systemy, możesz rozważyć użycie czegoś takiego jak rsync, aby wprowadzić różnice, ale ustalenie, które pliki nie powinny być rsync, może być trudne i nie zrobiłbym tego, gdy usługi są uruchomione. Przynajmniej skrypty aktualizacji są skonfigurowane do zarządzania restartowaniem usług i łączeniem różnic w plikach konfiguracyjnych.

Być może jeśli wyjaśnisz, na czym polega problem z wykonywaniem poleceń apt-get, możemy zobaczyć, czego chcesz uniknąć.

Jeśli problemem jest przepustowość i czas pobierania, być może powinieneś skonfigurować jedno pole, które będzie działać jako lokalne repozytorium Debiana. Istnieją przewodniki Debiana, jak to zrobić.

Oto kilka wskazówek, jak zminimalizować liczbę rzeczy, które należy zaktualizować.

Podczas instalacji Debiana nie instaluj Desktopa, chyba że naprawdę potrzebujesz X na tej konsoli. Większość serwerów nie wymaga zainstalowanego X-a. Może to znacznie zmniejszyć liczbę pakietów w systemie, a następnie nie trzeba aktualizować tylu pakietów.

Sprawdź, czy plik sources.list zawiera tylko te repozytoria, których naprawdę potrzebujesz. Jeśli eksperymentowałeś z jakimś repozytorium i zapomniałeś o tym, być może dostarczasz aktualizacje, których nie potrzebujesz lub nie chcesz.

Jeśli masz problemy ze ślepym robieniem aktualizacji na serwerze produkcyjnym, uważaj, aby zapoznać się z przewodnikami aktualizacji Debiana, gdy jest ważna aktualizacja (4.0 do 5.0). Przejdą one bardzo dobrze, jeśli postępujesz zgodnie z instrukcjami aktualizacji. Nie jest to tak łatwe, jak uruchomienie apt-get dist-upgrade i odejście. Czasami w instrukcjach znajdują się nawet wskazówki, kiedy uruchomić aptitude zamiast apt-get - są w nich niewielkie różnice.

labradort
źródło
0

Czy to narzędzie to „skorupa tancerza”? Lubię to i używam. Ale nie wiem, czy możesz go użyć dla tak wielu hostów. Może mógłbyś spróbować ...

http://www.netfort.gr.jp/~dancer/software/dsh.html.en

I on jest w repozytorium.

Matthieu
źródło
-1

ClusterSSH. Logujesz się do wszystkich serwerów i podajesz im dokładnie te same polecenia, dzięki czemu możesz także reagować na okna dialogowe. Jeśli jeden serwer otrzyma dodatkowe pytanie, po prostu kliknij ten, a on będzie jedynym, który odpowie.

Użyłem go do uaktualnienia 25 serwerów z etch do Lenny. Działa jak urok.

http://sourceforge.net/projects/clusterssh/

blauwblaatje
źródło
Agent SSH faktycznie umiera, jeśli próbujesz robić dziwne rzeczy, takie jak łączenie się z ~ 50 maszynami na raz. W przeciwnym razie lubię ClusterSSH, chociaż wymaga innego poziomu grupowania.
LapTop006
-1

Cluster ssh jest dobrą sugestią.

debmarshal nie jest jeszcze częścią Debiana - nie jestem nawet pewien, czy będzie to pakiet - wydaje się być zupełnie innym systemem ze specjalnym repozytorium. Jak powiedział mówca, jest to obecnie wrogie dla użytkownika, a nie przyjazne dla użytkownika.

Spacewalk wydaje się być klonem sieci Redhat, przynajmniej w interfejsie internetowym. Miałem złe wyniki z wykorzystaniem sieci Redhat do aktualizacji systemów. Pewnego razu zawiesił się bez wyraźnego powodu i spowodował awarię usługi. Zrobiłem mniam aktualizację natychmiast po tym i poradziłem sobie z tym dobrze, więc mogę tylko założyć, że problem był z czegoś, co obezwładniło po stronie RHN. Inną rzeczą, która mi się nie podoba w aktualizacjach RHN jest to, że nie wiesz, kiedy nastąpi aktualizacja, aby uważać na problemy.

labradort
źródło
-1 Nieprawdziwe: Aktualizacje RHN nie są automatyczne, chyba że uczynisz je automatycznymi. Poza tym: jako ktoś, kto korzysta z RHN na co dzień, jeszcze nie widziałem tego na sobie.
wzzrd
Nie powiedziałem, że RHN był automatyczny. Ale jeśli skonfigurujesz aktualizacje z RHN, nie wiadomo, kiedy mają się wydarzyć, więc wydaje się to samo. Twoje pozorne szczęście nie cofa mojego prawdziwego doświadczenia z porażką i pozostawieniem użytkowników bez obsługi. Nawet mniam aktualizacja może się nie powieść. Każdy, kto myśli, że możesz po prostu zaktualizować i odejść, nie jest ostrożny lub po prostu nie jest zaniepokojony, ponieważ nie jest to serwer produkcyjny (produkcja = istnieją klienci zależni od usług).
labradort