piątek, 12 listopada 2010

Konfiguracja lokalnego serwera pakietów Apt-Cacher NG

W ostatnim czasie stanąłem naprzeciwko wyzwania szybkiej wymiany komputerów i oprogramowania na salach dydaktycznych, którymi się opiekuję na Politechnice Krakowskiej. Całościowy poradnik z przebiegu tej pracy przygotuję niebawem, jednakże już dzisiaj chciałem się podzielić doświadczeniami z konfiguracji lokalnego serwera pakietów Apt-Cacher NG.

Jednym z systemów, który miał zostać zainstalowany na każdym z 20 nowych komputerów miał być Ubuntu 10.04.1 LTS w wersji 64 bitowej. Najpierw postanowiłem przeprowadzić próbną instalację na jednej z maszyn, a dopiero później na pozostałych. Nie wiem z jakich powodów, ale po instalacji systemu, instalacja dodatkowych pakietów, a raczej ich pobieranie z Internetu trwało ok. 3 godziny! Na to nie mogłem sobie pozwolić podczas właściwej instalacji, ponieważ na montaż sprzętu i instalację systemu przed pierwszymi zajęciami miałem niewiele więcej czasu. Dodam jeszcze, że instalator zakomunikował mi pobranie z Internetu ok. 350MB danych do aktualizacji.

Sytuację udało się opanować dzięki skonfigurowaniu jednego komputera jako lokalnego systemu pakietów. Jego rolą miało być buforowanie (w slangu polsko-angielskim można by powiedzieć keszowanie ;-) ) pakietów pobranych z Internetu i udostępnienie ich innym maszynom w sieci lokalnej. W tym momencie w Ubuntu najłatwiej to osiągnąć stosując narzędzie Apt-Cacher NG (strona projektu). Poniższy poradnik udało mi się przygotować na podstawie kilku materiałów z Internetu, do których odsyłam w razie problemów:

Konfiguracja lokalnego serwera pakietów

Uaktualniamy lokalną bazę repozytoriów i pobieramy najnowsze aktualizacje:

sudo apt-get update
sudo apt-get upgrade

Instalacja narzędzia apt-cacher-ng z repozytorium:

sudo apt-get install apt-cacher-ng

Konfiguracja serwera i klientów

Uwaga: Należy pamiętać o właściwym ustawieniu adresu IP lokalnego serwera pakietów. Ja używam IP: 192.168.120.102. Należy go oczywiście zmienić na własny.
  • Konfigurujemy system pakietów apt (aplikacje apt-get, aptitude i inne), aby używał apt-cacher-ng:

    sudo echo 'Acquire::http { Proxy "http://192.168.120.102:3142"; };' | sudo tee /etc/apt/apt.conf.d/01apt-cacher-ng-proxy

    Możemy to oczywiście wyłączyć poleceniem:

    sudo rm /etc/apt/apt.conf.d/01apt-cacher-ng-proxy

  • Konfiguracja Synaptic z konsoli:

    Uwaga: Jeśli pracujemy na nowym komputerze zaraz po instalacji, należy najpierw uruchomić na nim Synaptica i odświeżyć listę pakietów. Można to zrobic również przez ssh łącząc się z opcją -X.

    sudo grep --color -i 'proxy' /root/.synaptic/synaptic.conf || sudo nano /root/.synaptic/synaptic.conf

    zamieniamy ostatnią linijkę, czyli znaki: ”};” na:

    useProxy "1";
      httpProxy "192.168.120.102";
      httpProxyPort "3142";
      ftpProxy "192.168.120.102";
      ftpProxyPort "3142";
      noProxy "";
    };

    Sprawdzamy jeszcze raz, czy wprowadzone zmiany znajdują się w pliku:

    sudo grep --color -i 'proxy' /root/.synaptic/synaptic.conf

  • Wczytujemy ponownie listę pakietów:

    sudo apt-get update

Import lokalnych plików instalacyjnych

Uwaga: Poniższe czynności wykonujemy tylko na serwerze!

W tym kroku zostaną zaimportowane lokalne pliki *.deb do repozytorium apt-cacher-ng. Dzięki temu narzędzie apt-cacher-ng nie będzie pobierać ponownie już raz pobranych plików.

test -x /var/cache/apt-cacher-ng/_import || sudo mkdir -p -m 2755 /var/cache/apt-cacher-ng/_import
sudo mv -uf /var/cache/apt/archives/*.deb /var/cache/apt-cacher-ng/_import/

Rozpoczynamy importowanie uruchamiając skrypt znajdujący się w dostarczonym panelu kontrolnym: http://localhost:3142/acng-report.html?doImport=Start+Import#bottom

Panel kontrolny i dostęp do dokumentacji

Twórcy narzędzia Apt-Cacher NG przygotowali bardzo prosty panel kontrolny (Dashboard), w którym użytkownik może zobaczyć statystyki z jego działania. Jest on dostępny pod adresem: http://localhost:3142/acng-report.html.

Warto również zajrzeć do oficjalnej dokumentacji, która po instalacji pakietu będzie znajdować się w poniższej lokalizacji (można kliknąć link i otworzyć w przeglądarce): file:///usr/share/doc/apt-cacher-ng/html/index.html.

Własne spostrzeżenia

Już teraz, po pierwszych próbach muszę przyznać, że narzędzie to oszczędziło mi sporo czasu i oczywiście sporo nerwów (oczekiwanie na zakończenie aktualizacji, lub też na instalację dodatkowych programów niezbędnych do zajęć, potrafi być stresujące, jeśli te zajęcia rozpoczynają się za kilka minut). Dla przykładu pobranie aktualizacji na 20 maszynach z Ubuntu, nie trwało tak jak wcześniej wspominałem 3 godziny, a zaledwie 2 minuty. Taką różnicę naprawdę się czuje :-)

Poza aktualizacjami zainstalowałem też kilkanaście dodatkowych pakietów. Nie wiem ile to było MB dla jednego komputera, ale wiem ile to było w sumie dla wszystkich. Poniżej załączam zrzut ekranu z Panelu kontrolnego, prezentujące statystyki pobrań pakietów z lokalnego serwera pakietów:



Jak widać ok. 16 GB! danych zostało pobranych z lokalnego serwera pakietów. Jestem przekonany, że fakt ten tak samo cieszy (a może bardziej) administratorów naszej uczelnianej sieci i oczywiście administratorów głównych serwerów pakietów dla Ubuntu.

Pozostałe uwagi i spostrzeżenia przedstawiam już w skróconej formie:
  • Idea działania Apt-Cacher NG jest taka, że po instalacji danego pakietu z dowolnego komputera w sieci lokalnej, pakiet ten powinien być już dostępny dla innych maszyn na serwerze. Ja jednak dla pewności przyjąłem taką strategię, że dany pakiet najpierw instaluje na serwerze, a później na wszystkich klientach na raz.
  • Wydawać by się mogło, że importowanie pakietów trzeba wykonać tylko raz. Jednak zdarzyło mi się już kilka razy, że niektóre pakiety pomimo pierwszej instalacji z głównego serwera, znowu były z niego pobierane jeśli instalowałem go ponownie na innej maszynie. Po zauważeniu takiego faktu, warto ponownie zaimportować pakiety.
  • Wyliczanie statystyk transferu przez panel kontrolny potrafi zawiesić Apt-Cacher NG. Ostatnio 2-krotnie po uruchomieniu ich zliczania Apt-Cacher NG przestawał odpowiadać na zapytania maszyn klienckich. Możliwe, że po prostu nie radził sobie z analizą logów i gdzieś się zawieszał. 
Moim zdaniem Apt-Cacher NG jest narzędziem jak najbardziej godnym polecenia.

    1 komentarze:

    kki pisze...

    Dzięki za informację. Chętnie przetestuję Apt-Cacher NG.

    Prześlij komentarz