Jak aktualizować wiele maszyn w tym samym czasie

W sytuacjach, gdy zarządzasz wieloma komputerami, Apt może być bardzo pomocny, ponieważ sprawia, że ​​proces aktualizacji i stosowania poprawek bezpieczeństwa dla każdego komputera jest bardzo prosty. Problem polega na tym, że tradycyjną metodą, gdy pojawi się aktualizacja, musisz pobrać kopię wszystkich nowych pakietów dla każdej z maszyn, co oznacza fenomenalne zużycie naszej przepustowości i przepustowości. Z oficjalnego serwera Na szczęście, istnieje metoda, która pozwala nam aktualizować jeden z komputerów, a stamtąd aktualizować pozostałe komputery, które tworzą naszą sieć. Ta metoda, oprócz obniżenia kosztów i optymalizacji wykorzystania naszej przepustowości, pozwala uniknąć powielania pakietów na różnych maszynach: wszystkie instalują pakiety przy użyciu naszego „serwera pamięci podręcznej”.


Kiedy uruchamiasz tę samą dystrybucję na różnych maszynach (czy to w pracy, w laboratoriach komputerowych, na „farmach” serwerów, w klastrach, czy nawet w małej sieci domowej) przydatne może być utworzenie repozytorium pamięci podręcznej w sieci tak, że po pobraniu pakietu z oficjalnego repozytorium, wszystkie inne maszyny pobierają go z tego repozytorium pamięci podręcznej, które jest przechowywane na maszynie w Twojej sieci, którą nazwiemy „serwerem”. W ten sposób aktualizacje pobrane z jednego komputera można zainstalować na innych bez konieczności ponownego pobierania ich z oficjalnych repozytoriów.

Przyjrzyjmy się najpierw niektórym „nietradycyjnym” rozwiązaniom, których NIE POLECAM, ale na pewno przyjdą mi do głowy podczas rozwiązywania tego pytania.

Udostępnij / etc / apt

Gdy instalujesz pakiet w dystrybucji Debiana (lub jego pochodnych), jest on przechowywany lokalnie w katalogu „/ etc / apt”. Gdy pakiet jest wymagany, Apt najpierw sprawdza ten katalog, aby sprawdzić, czy jest tam kopia lokalna (to jest pamięć podręczna), unikając w ten sposób niepotrzebnego pobierania. W rezultacie kilku z was z pewnością pomyślało, że dobrym sposobem rozwiązania tego problemu mógłby być wybór komputera, który określilibyśmy jako rodzaj serwera, który byłby aktualizowany za pomocą oficjalnych repozytoriów i który udostępnij swój katalog „/ etc / apt” pozostałym komputerom w sieci. Jednak ta metoda może prowadzić do problemów związanych z blokowaniem pliku „sources.list”. Generalnie nie jest to najczęściej stosowane ani najwygodniejsze rozwiązanie.

Przenieś pakiety

Zamiast udostępniać wspólny katalog „/ etc / apt”, inną alternatywą może być użycie własnego lokalnego katalogu pamięci podręcznej dla każdego komputera, ale wygenerowanie skryptu, który zajmie się kopiowaniem pakietów z jednej maszyny na drugą, aby wszystkie pozostały zaktualizowane . Narzędziem do wykonania tego zadania może być „apt-move”, ale szczerze nie polecam go, ponieważ nie jest wystarczająco przejrzysty dla użytkownika końcowego. Ponadto może to oznaczać całkowicie niepotrzebne wykorzystanie miejsca na dysku, ponieważ wszystkie pakiety będą musiały zostać skopiowane na każdą z maszyn.

Dedykowane systemy pamięci podręcznej

Najlepszym rozwiązaniem tego problemu jest użycie dedykowanego systemu pamięci podręcznej. Krótko mówiąc, chodzi o utworzenie kopii oficjalnych serwerów na jednym z komputerów w Twojej sieci, a następnie skonfigurowanie pozostałych maszyn tak, aby zamiast szukać aktualizacji z oficjalnych serwerów, robili to za pomocą tego lokalna pamięć podręczna (lub kopia).

Istnieje wiele systemów zaprojektowanych do współpracy z Apt, w tym apt-cacher, apt-proxy i apt-cached.

Tutaj zajmiemy się apt-cacher, który jest najłatwiejszy w użyciu.

apt-cacher

Apt-cacher różni się znacznie od innych systemów buforowania repozytorium, ponieważ nie jest samodzielnym programem, ale działa jako skrypt CGI pod Apache. Ma to kilka zalet, takich jak uczynienie go małym i prostym narzędziem, ale jednocześnie bardzo potężnym, a tym samym bardziej niezawodnym, ponieważ nie wymaga własnego kodu do obsługi protokołów i jest bardzo elastyczne, ponieważ możesz używać Apache mechanizm kontroli dostępu na wypadek, gdybyś chciał ograniczyć liczbę maszyn, które mają dostęp do pamięci podręcznej.

Apt-cacher musi być zainstalowany tylko na jednej maszynie, która według Ciebie powinna działać jako lokalna pamięć podręczna repozytorium. Następnie pozostałe komputery w Twojej sieci muszą być skonfigurowane tak, aby żądały aktualizacji z pamięci podręcznej, a nie z oficjalnych serwerów.

Konfiguracja serwera

Aby zainstalować tylko

sudo apt-get zainstaluj apt-cacher

Ten pakiet ma zależności z apache, perl i wget, więc zainstaluje je, jeśli nie masz ich wcześniej zainstalowanych.

Po zainstalowaniu zaleca się ponowne uruchomienie Apache:

/etc/init.d/Apache uruchom ponownie

Na koniec wszystko, co musisz zrobić, to dostosować domyślne parametry skryptu. Napisałem w terminalu:

sudo gedit /etc/apt-cacher/apt-cacher.conf

Ogólnie wszystkie wartości domyślne są w porządku, ale zaleca się dostosowanie następujących trzech:

admin_email = mimail @ myserver generated_reports = 1 expire_hours = 24

Drugi element to zmienna boolowska, która decyduje o generowaniu raportów (0 nie generuje raportów, 1 je generuje). Pierwszym elementem natomiast jest adres e-mail, na który będą wysyłane utworzone raporty. Trzecia i ostatnia pozycja określa liczbę godzin, przez które Apt powinien czekać, aby sprawdzić dostępność aktualizacji na oficjalnych serwerach.

Jeśli korzystasz z serwera proxy, nie zapomnij dodać następujących elementów:

http_proxy = proxy.example.com: 8080 use_proxy = 1

Aby sprawdzić, czy to działa, możesz uzyskać dostęp do lokalnej pamięci podręcznej przez adres URL http: // nazwa_serwera / apt-cacher / i pojawi się strona pokazująca konfigurację apt-cacher. Pamiętaj, że „nazwa_serwera” musi zostać zastąpiona adresem IP maszyny, którą wyznaczyłeś jako „serwer”, czyli depozyt lokalnej pamięci podręcznej pakietów.

Konfiguracja klientów

Teraz wszystko, co musisz zrobić, to zmodyfikować pliki sources.list klientów, tak aby przechodziły przez serwer. Jeśli adres IP serwera to 123.123.123.123, musisz dodać go do każdej linii pliku sources.list, a także uważać, aby wszystkie odnosiły się do tego samego serwera, w przeciwnym razie pamięć podręczna nie będzie miała żadnego efektu.

sudo gedit /etc/apt/sources.list
Uwaga: uważaj! W Debianie i jego pochodnych plik „sources.list” jest przechowywany w „/ etc / apt”. Jednak w innych dystrybucjach może być przechowywany w innej ścieżce. Jeśli nie możesz znaleźć pliku, zawsze możesz go znaleźć, wpisując w terminalu „locate sources.list”.

Po otwarciu pliku, adres IP naszego serwera to 123.123.123.123, wszystkie linie powinny zostać zmodyfikowane według następujących kryteriów:

# Original #deb http://ftp.us.debian.org/debian/ sid główny wkład non-free # deb-src http://ftp.us.debian.org/debian/ sid główny wkład non-free # Zmodyfikowany deb http://123.123.123.123/apt-cacher/ftp.us.debian.org/debian/ sid główny wkład niewolny deb-src http://123.123.123.123/apt-cacher/ftp.us.debian. org / debian / sid główny wkład niewolny

Jak widać, na początku adresu URL należy dodać adres IP serwera + „/ apt-cacher /”. Następnie przechodzi do pozostałej części oryginalnej linii.

Statystyki ruchu

Jeśli dodałeś element „generation_reports = 1” do pliku „apt-cacher.conf”, apt-cacher wygeneruje statystyki dostępu, do których można uzyskać dostęp za pomocą adresu URL „/ apt-cacher / report”.

Jeśli z jakiegoś powodu potrzebujesz wygenerować statystyki przed liczbą godzin określoną w „apt-cacher.conf”, uruchom następującą komendę:

/usr/share/apt-cacher/apt-cacher-report.pl

Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.

  1.   eduardo powiedział

    Pozdrowienia, doskonały wkład, moje pytanie brzmi, czy znasz jakąkolwiek aplikację, która pozwala na posiadanie scentralizowanego repozytorium do stosowania łatek, ale do różnych dystrybucji, to znaczy aktualizowanie kilku maszyn w tym samym czasie, ale mają różne dystrybucje

  2.   Użyjmy Linuksa powiedział

    Cześć Eduardo! Prawda jest taka, że ​​widzę to bardzo trudne. Jeśli odkryjesz jakiś sposób, nie przestawaj mnie informować.
    Wielki uścisk! Twoje zdrowie! Paweł.

  3.   skąpy powiedział

    Używam Puppet do zdalnego zarządzania serwerami, którymi zarządzam.

  4.   Użyjmy Linuksa powiedział

    Tak, bardzo dziękuję za informację. Już to poprawiłem.
    Przytulić! Paweł.

  5.   Geniutrixon powiedział

    Cześć,

    samouczek jest bardzo dobry ... mam zakres ... w Debianie Lenny source.lst znajduje się w ścieżce / etc / apt /

    pozdrowienia

  6.   sepulvedamarcos powiedział

    pytanie….

    jeśli mam kilka komputerów z tą samą dystrybucją… ale nie z tymi samymi programami…. Skąd wiesz, co pobrać z oficjalnych repozytoriów…. obniża wszystko ??? ...

  7.   Użyjmy Linuksa powiedział

    Twoje pytanie jest doskonałe. Obliczam, że system powinien działać tak samo, jak we wspólnym Apt: jeśli nie znajdzie go w pamięci podręcznej, pobierze go z oficjalnych repozytoriów. W takim przypadku jeden z komputerów „klienckich” informuje „serwer”, że wymaga aktualizacji zgodnie z listą aktualizacji na „serwerze” w sieci. Aby zainstalować tę aktualizację, obliczam, że najpierw będzie szukał pakietu w pamięci podręcznej serwera. Jeśli nie może go znaleźć, pobiera go z oficjalnych repozytoriów, zapisuje na serwerze i stamtąd instaluje na maszynie, która tego wymaga. Ten pakiet będzie dostępny w pamięci podręcznej „serwera”, aby inne maszyny w Twojej sieci również mogły go stamtąd zainstalować.

    Jeśli nie wyraziłem się wystarczająco jasno, napisz.

    Uścisk! Paweł.

  8.   Miszudark powiedział

    Myślę, że wystąpił BŁĄD… pakiety nie są przechowywane w / etc / apt…. faktycznie pozostają w / var / cache / apt / archives

  9.   Użyjmy Linuksa powiedział

    Prawda jest taka, że ​​nie wiem.
    Jasne, że jest na to sposób. 🙁
    Jeśli się dowiesz, daj mi znać, a dodam to.
    Twoje zdrowie! Paweł.

  10.   Alvaro powiedział

    Nie ma nic z dynamicznymi adresami IP, prawda?

  11.   znak powiedział

    Najwyraźniej w bardziej aktualnych dystrybucjach trzeba dodać port (domyślnie 3142) do adresu URL sieci lokalnej. Wyglądałoby to tak: http://mi_servidor:3142/apt-cacher

  12.   alfredo torrealba powiedział

    Mam lubuntu 16.04 kto to zrobił w tym systemie i czy u niego zadziałał? I chciałem zapytać, czy instaluję ten serwer, a moje inne maszyny nie mają tych samych programów, gdy wysyłam żądanie na moich komputerach klienckich do instalacji programu, który mam na serwerze, myślisz, że instaluję bezpośrednio z serwera lokalnego, czy też żądanie do oficjalnego serwera repozytorium ¿?