Wstęp

Wstęp

Ten artykuł na logiczną kontynuację naszego artykułu PXE, ponieważ po przeczytaniu będziesz mógł rozruch w sieci i faktycznie zainstalować wybrany dystrybucja. Ale istnieją inne zastosowania tworzenia własnego repozytorium. Na przykład przepustowość. Jeśli zarządzasz siecią, a wszystkie systemy (lub niektóre) działają w tej samej dystrybucji, łatwiej jest ci po prostu rsync w połączeniu z pobliskim lustrem i podawać aktualizację. Następnie może masz kilka pakietów, których dystrybucja nie zaakceptuje na głównym drzewie, ale użytkownicy uważają je za przydatne. Uzyskaj nazwę domeny, skonfiguruj serwer Web. Nie będziemy tutaj szczegółowo opisać konfiguracji serwerów internetowych, tylko podstawowych zadań instalacyjnych i podstawowej konfiguracji repozytorium dla systemów Fedory lub Debian. Dlatego oczekuje się, że będziesz mieć niezbędny sprzęt (serwer i niezbędny sprzęt sieciowy, w zależności od sytuacji) i wiedzy na temat Linux i Web. A więc zacznijmy.

NOTATKA:Ten artykuł został przeniesiony z naszej poprzedniej domeny Linuxcareer.com.

Tworzenie repozytorium w systemach Fedora

Instalowanie narzędzi

Fedora ma narzędzie o nazwie CREATEREPO co upraszcza zadanie. Musimy więc zainstalować to i httpd jako serwer WebServer:

 # Yum Instal Crererererepo Httpd 

Konfigurowanie repozytoriów

Teraz, po skonfigurowaniu serwera Web. Musimy stworzyć niezbędne katalogi w zorganizowanej materii (możesz dostosować się do smaku w razie potrzeby lub po prostu postępować zgodnie z oficjalnym układem):

 # cd/var/www/html # mkdir -p fedora/15/x86_64/baza # mkdir fedora/15/x86_64/aktualizacje 

To wszystko na razie. Wszystko, co musimy zrobić, to rsync do utworzonych folderów i upewnij się, że mamy dużo miejsca:

 # rsync -Avrt rsync: // ftp.Heanet.IE/pub/fedora/linux/remises/15/Everything \/x86_64/os/pakiety//var/www/html/fedora/15/x86_64/baza 

Teraz użyj Createrepo dla folderu podstawowego:

 # crerererepo/var/www/html/fedora/15/x86_64/baza 

Jest to obowiązkowe, ponieważ utworzy katalog repodata, którego potrzebuje mniam podczas korzystania z repozytorium. Teraz powtórzmy ten sam krok jak powyżej, ale tym razem otrzymamy aktualizacje:

 # rsync -Avrt rsync: // ftp.Heanet.IE/pub/fedora/linux/\ aktualizacje/15/x86_64//var/www/html/fedora/15/x86_64/aktualizacje 

Ostatecznie zalecamy sprawdzenie, czy HTTPD jest ustawiony na rozruch, a także używać Cron, aby regularnie otrzymywać aktualizacje:

 # Systemctl Włącz HTTPD.serwis # crontab -e 

Pamiętaj, że dodanie polecenia RSYNC jest drugim, ten związany z aktualizacjami i że SystemCtl jest dostępny tylko na Fedorze 15 lub więcej. Użyj NTSYSV lub CHKCONFIG w starszych systemach Fedora.

Konfiguracja klienta

Musisz powiedzieć maszynom, które otrzymają aktualizacje z serwera, gdzie je znaleźć, więc zaczynamy od utworzenia .Pliki Repo:

# to będzie baza.Repo [Base -Lan] Nazwa = fedora $ releasever - $ basearch failovermethod = priorytet baseurl = http: // 192.168.1.2/fedora/$ releasever/$ basearch/base enabled = 1 # upewnij się, że wyłączysz urzędnik .Pliki repo z włączoną = 0 gpgcheck = 0 # To będzie aktualizacja-lan.Repo [Aktualizacje Lan] Nazwa = Fedora $ releasever - $ basearch - aktualizacje awaryjneMethod = priorytet baseurl = http: // 192.168.1.2/fedora/$ releasever/$ basearch/aktualizuje gpgcheck = 0 

Teraz po prostu zrób

 # Aktualizacja Yum 

I jesteś gotowy.

Podpisanie pakietu

Jak wskazał jeden z naszych czytelników, należy zdawać sobie sprawę z problemów bezpieczeństwa podczas instalowania pakietów. Oprogramowanie może być pobierane z zagrożonych serwerów i może zawierać złośliwe wykonywanie. Yum (i Apt, Zypper i inne systemy zarządzania opakowaniami) przezwycięży ten problem, używając klawiszy GPG. Rozmawialiśmy o odzwierciedleniu repozytorium Fedory. Pakiety te są już podpisane, a klucze można znaleźć w/etc/pki/rpm-gpg. Jeśli kiedykolwiek używałeś oficjalnego repozytorium Fedora jako klienta. Jeśli nie, klucze można pobrać z Getfedora.org/klawisze/. Teraz musimy zmienić nasze .Pliki repo, aby włączyć GPGCheck i powiedzieć Yum, gdzie są klucze.

# Są to jedyne linie, które należy zmienić gpgcheck = 1 gpgkey = plik: /// etc/pki/rpm-gpg/rpm-gpg-fedora-fedora 

Jeśli używasz lokalnego repozytorium pakietów niestandardowych, Yum narzeka, że ​​twoje niestandardowe pakiety nie są podpisane. Możesz użyć flagi yum -nogpgCheck, jeśli jesteś opieką lustra/repozytorium i serwujesz pakiety tylko dla swojej organizacji, lub, bezpieczny sposób, podpisz również niestandardowe pakiety. Wynika to z faktu, że serwer posiadający niestandardowe/lokalne repozytorium może być również zagrożone. Musisz więc utworzyć klucz GPG na serwerze i użyć RPM do podpisania niestandardowego pakietu:

$ gpg-gen-key $ gpg--list-sigs

Jak widać, użytkownik jest w naszym przypadku „Kariera Linux”. Teraz, aby upublicznić kluczowy:

 $ gpg --Harmor -export „userid”> my.klucz.plik.ASC $ GPG -KOREYSERVER PGP.MIT.edu--send-key „userid” 

Oczywiście Twój użytkownik będzie się różnił, więc odpowiednio zmień informacje. Zwróć uwagę, że na Fedorze 16, na której to przetestowaliśmy, wykonywalny jest nazwany GPG2 zamiast GPG.

Musimy tylko stworzyć .Plik rpmmacros w katalogu domowym użytkownika, który podpisze pakiety i umieści tam następujące:

%_signature GPG %_GPG_NAME USERIDOD %_GPGBIN/USR/BIN/GPG2 

Polecenie podpisania pakietu, teraz wszystko jest ustawione, będzie

 $ rpm --addsign name_of_package.RPM

Teraz pobieranie klienta z niestandardowego repozytorium będzie używać „rpm -import $ klucz”, aby móc pobrać te niestandardowe pakiety.

Tworzenie repozytorium w systemach Debian

Instalowanie

Ponieważ struktura repozytorium Debiana jest bardziej skomplikowana, zobaczysz, że po stronie serwera wymaga nieco więcej pracy, ale mniej po stronie klienta. Przez cały czas będą trzy sekcje: stabilne, testowe i niestabilne (nie liczące eksperymentalne), z których każdy ma trzy komponenty w zależności od licencji pakietów: główny, główny, wkład i nie wolny. Twoim decyzją jest uczynienie, jaką część dystrybucji chcesz odzwierciedlać, ale naszym obowiązkiem jest ostrzec: Debian ma znacznie więcej pakietów do zaoferowania niż Fedora, więc wymagania dotyczące miejsca na dysku znacznie wzrosną. Istnieje wiele narzędzi, których możesz użyć do tworzenia niestandardowego repozytorium z własnymi pakietami niestandardowymi, ale na razie będziemy trzymać się oficjalnych pakietów. Wrócimy więc do naszej konfiguracji artykułu PXE i utworzymy lokalne repozytorium do instalacji. Będziemy potrzebować serwera internetowego, więc zainstalujmy go:

 # Aptitude Zainstaluj Apache2 

Upewnij się, że Apache jest skonfigurowany i rozpoczął się przed kontynuowaniem.

Konfiguracja serwera

Director domyślny, podobnie jak w Fedorze, jest /var /www, więc stwórzmy tam katalog debian:

 # mkdir/var/www/debian 

Ludzie Debian zalecają ftpsync, zbiór skryptów Perla, który ma pomóc Ci uzyskać to, czego potrzebujesz na lokalne lustro. Szczególne zainteresowanie --wykluczać Opcja, ponieważ nie chcesz uzyskać całej zawartości archiwum Debian (tylko AMD64, tylko główny i wkład, tylko ściskanie, bez płyt CDS itp.). Jeśli chcesz utworzyć repozytorium do użycia po instalacji, po prostu skieruj swój/etc/apt/źródła.Lista do katalogu zawierającego pakiety (masz już tam model działający) i to wszystko. Na przykład:

 Deb http: // 192.168.1.2/Debian Squeeze główny wkład 

Ale zobaczmy szczegółowo, co musisz pobrać, jeśli nie masz ochoty używać ftpsync. Debian (i Ubuntu i prawdopodobnie inni debian-pochodni) mają pakiet o imieniu Apt-Utils, który oferuje między innymi apt-ftparchive program, którego użyjemy do naszego niestandardowego repozytorium. Więc…

 # Aptitude instaluj apt-utils 

Otrzyma niezbędne narzędzie zainstalowane w systemie. Mamy już katalog podstawowy na naszym serwerze WebServer, więc będziemy potrzebować podlokdatorów dostosowanych do naszych potrzeb:

 # cd/var/www/debian # mkdir -p pula/main # mkdir pula/wkład # mkdir -p dists/squeeze/main/binary -amd64 # mkdir -p .Pamięć podręczna 

Teraz, gdy mamy na miejscu strukturę katalogu, utwórzmy niezbędne pliki konfiguracyjne, aby pomóc Apt-Ftparchive znaleźć i indeksować nasze oprogramowanie. Należy pamiętać, że możesz użyć tej konfiguracji do odzwierciedlenia oficjalnych pakietów Debiana lub utworzenia repozytorium z własnymi pakietami, ponieważ kroki są takie same.

Pierwszy plik dwóch, które będziemy musieli utworzyć (oba będzie żyć w/var/www/debian), nazywa się apt-release.conf.

 # cd/var/www/debian # $ edytor appt-release.conf 

Zawartość związana z naszymi potrzebami, jak pokazano powyżej, byłaby taka:

Apt :: ftparchive :: release :: Codename „squeeze”; Apt :: ftparchive :: wydanie :: pochodzenie „Linuxcareer.com "; apt :: ftparchive :: release :: komponenty„ główny wkład ”; apt :: ftparchive :: exide :: etykieta„ Linuxcareer.com debian repo "; apt :: ftparchive :: release :: architektury" amd64 "; apt :: ftparchive :: wydanie :: supeite" squeeze "; 

Możesz także użyć apt-ftparchive do generowania plików konfiguracyjnych na podstawie argumentów wiersza poleceń. Zastosuj dowolne podejście, które preferujesz.

Drugi plik konfiguracyjny nazywa się apt-ftparchive.Conf i jego zawartość wyglądałaby tak:

 Dir archiwideir ".„; Butadir”./.cache ";; domyślne pakiety :: compress". gzip bzip2 "; content :: compress". gzip Bzip2 ";; Treedefault BincachedB" Pakiety-$ (sekcja)-$ (arch).db "; katalog" pula/$ (section) "; pakiety" $ (dist)/$ (section)/binary-$ (arch)/pakiety "; treść" $ (dist)/content-$ (arch) "; ; Drzewo „dists/squeeze” sekcje „główny wkład”; architektury „amd64”; 

Jak widać, składnia jest bardzo oczywista w odniesieniu do obu plików.

Ze względu na przykład pobramy teraz .Deb z lustra Debiana, aby właściwie zilustrować nasz pomysł.

 # cd/var/www/debian/pula/main # wget -c ftp: // ftp.Heanet.IE/Mirrors/FTP.Debian.Org/debian/bul się/main/\ p/patch/patch_2.6.1.85-423D-3_AMD64.Deb 

Teraz wygenerujmy zawartość (będzie to trzeba powtórzyć za każdym razem, gdy dodajesz lub usuniesz pakiety).

 # cd/var/www/debian # apt-ftparchive generuj apt-ftparchive.conf # apt-ftparchive -c apt-release.Conf Release Dists/Squeeze> \ Dists/Squeeze/Release 

Te działania zrobiły tak zwane „budowanie repozytorium”. Teraz, zgodnie z instrukcją powyżej, dodaj linię do swoich źródeł.Lista i możesz mieć dostęp do swojego repozytorium oprogramowania. Jeśli musisz zostać lustrem Debian i nadal nie ma ochoty FTPSYNC, użyj rsync ze zdalnym katalogiem o nazwie basen/$ Section i idź na kawę czy coś takiego. Użyj także lustra, nie przeciążaj FTP.Debian.Org, proszę.

Podpisanie pakietu

Jeśli chcesz użyć obrazu CD/DVD/Blu-ray do obsługi treści dla swoich klientów, plik wydania na obrazach optycznych nie jest domyślnie podpisany. Ale jeśli służycie przez rsync'ting treści lustra, są szanse, że nie musisz nic robić. Jeśli masz niestandardowe repozytorium, oto jak to zrobić. Po pierwsze, jak w przykładzie Fedora, wygeneruj klucz GPG:

 $ GPG-Gen-key 

Teraz, z powodu błędu nr 639204 w Debsign (ostatnia aktualizacja w sierpniu), wydaje się, że będziemy musieli wybrać alternatywną trasę. Ponieważ pakiety Debian są po prostu archiwami AR, użyjemy sposobu na podpisanie naszych pakietów:

 $ ar x pakiet_name.Deb $ cat debian-binary kontrola.smoła.Dane GZ.smoła.GZ> TEMPFILE $ GPG -ABS -O _GPGORIGIN TEMPFILE $ AR RC PACKT_NAME.Deb _GpGorigin Debian-Binary Control.smoła.Dane GZ.smoła.GZ 

Więc to, co tu zrobiliśmy .plik Deb z AR, łączą swoją „zawartość do pliku tymczasowego (pamiętaj o zamówieniu), podpisz ten plik, a następnie ponownie komponuj .Deb do „pierwotnego stanu. Teraz musimy wyeksportować klucz GPG (jak widać, proces ten nie różni się od tego, który zastosowano na Fedorze).

 $ gpg -export -a> myDeBsign.Asc 

Teraz wyodrębnijmy klucz do dalszego wykorzystania:

 $ gpg -FingerPrint 

Pamiętaj o czterech ostatnich grupach w kluczowym odcisku palca (jak pokazano poniżej), ponieważ będą to kluczowe identyfikator, którego użyjemy później.

Na komputerze klienckim upewnij się, że masz zainstalowany DebSig-Verify, a następnie możesz utworzyć miejsce dla klucza:

 # mkdir/usr/share/debsig/keyrings/$ key_id 

Jak widać na zrzucie ekranu, nasz przykładowy identyfikator klucza to 8760C540B4FC5C21. Teraz zaimportujmy klucz:

 # gpg-no-default-keyring-Keyring \/usr/share/debsig/keyrings/$ key_id/debsign.GPG -Import MyDebsign.Asc 

Teraz pojawia się trudna część: będziemy potrzebować pliku zasad kluczy. Używany język to XML, ale nie trzeba się martwić: w/usr/share/doc/debisg-weryfikacja/przykłady znajdziesz plik o nazwie generic.Pol, który można skopiować gdzieś do edytowania i zmiany nazwy. Przykład takiego pliku może wyglądać tak:

 xmlns = "http: // www.Debian.org/debsig/1.0/">  Name = "Linux Career" Opis = "Pakiet oferowany przez karierę Linux"/>   Type = "origin" file = "debsign.GPG "/>   Minoptional = "0">  Type = "origin" file = "debsign.GPG "/>  

To, co widzisz powyżej, jest tylko istotną częścią pliku zasad. Po sprawdzeniu z przykładem i dokonaniu niezbędnych zmian, zapisz ten plik na/etc/debsig/polityki/$ key_id/$ Policy_name.Pol. Po tym kroku, jeśli poprawnie postępujesz zgodnie z krokami, możesz użyć debsig-weryfikacji z nazwą pakietu jako argumentu, aby sprawdzić pobrane pakiety. Podziękowania dla Purplefloyd za jego pomocny artykuł na ten temat.

Konfiguracja klienta

Zacznijmy więc nasz komputer klienta, upewniając się, że jest on skonfigurowany do rozruchu z sieci, a kiedy zostaniesz poproszony o wybranie lustra, wybierz „Wprowadź informacje ręczne”. Wprowadź adres IP swojego serwera, a następnie lokalizację w stosunku do /var /www (debian, w naszym przypadku) i powinieneś być gotowy do zainstalowania.

Wniosek

Nigdy nie można wystarczająco podkreślić znaczenia oszczędzania przepustowości, nawet w małej sieci. Oczywiście istnieją inne zalety lokalnego podejścia lustrzanego, takie jak obsłużenie dostosowanego oprogramowania dla Twojej firmy (zastosowane specjalne plastry lub po prostu zmiany w celu lepszego pasowania firmy) lub obsługa oprogramowania pakowanego do ulubionej dystrybucji.

Powiązane samouczki Linux:

  • Jak skonfigurować Raspberry Pi jako serwer BOOT PXE
  • Lustra Ubuntu
  • Przykłady rsync w Linux
  • Wprowadzenie do automatyzacji, narzędzi i technik Linuksa
  • Rzeczy do zainstalowania na Ubuntu 20.04
  • Rzeczy do zrobienia po zainstalowaniu Ubuntu 20.04 Focal Fossa Linux
  • Jak wydrukować drzewo katalogu za pomocą Linux
  • Rzeczy do zrobienia po zainstalowaniu Ubuntu 22.04 JAMMY Jellyfish…
  • Mastering Bash Script Loops
  • Ubuntu 20.04 Przewodnik