Lokale Repositories Instellen met ‘apt-mirror’ in Ubuntu en Debian Systemen

Wanneer vandaag het verkeer en de casual internetsnelheden worden gemeten in tientallen gigabytes in een oogwenk, zelfs voor gewone internetklanten, zou je je kunnen afvragen wat het doel is van het instellen van een lokaal repository-cache op LAN’s.

Setup Local Repositories in Ubuntu

Een van de redenen is om internetbandbreedte te verminderen en hoge snelheden bij het ophalen van pakketten van lokale cache. Maar, een andere belangrijke reden zou ook privacy moeten zijn. Stel je voor dat klanten van jouw organisatie beperkt zijn tot internet, maar hun Linux-machines wel regelmatig systeemupdates nodig hebben voor software en beveiliging of gewoon nieuwe softwarepakketten nodig hebben. Om verder te gaan, een server die draait op een privénetwerk, bevat en bedient geheime gevoelige informatie alleen voor een beperkt netwerksegment, en mag nooit worden blootgesteld aan het openbare internet.

Dit zijn slechts een paar redenen waarom je een lokale repositorymirror zou moeten opzetten op jouw LAN, een edge-server toewijzen voor deze taak en interne clients configureren om software uit haar cachemirror te halen.

Ubuntu biedt het apt-mirror-pakket om de lokale cache te synchroniseren met de officiële Ubuntu-repositories, een mirror die geconfigureerd kan worden via een HTTP of FTP-server om haar softwarepakketten te delen met lokale systeemclients.

Voor een volledige cache-mirror heeft jouw server minimaal 120G vrije ruimte nodig, gereserveerd voor lokale repositories.

Vereisten:

  1. Minimaal 120G vrije ruimte
  2. Proftpd-server geïnstalleerd en geconfigureerd in anonieme modus.

Stap 1: Configureer de server

1. Het eerste wat u wilt doen is de dichtstbijzijnde en snelste Ubuntu-mirrors identificeren bij uw locatie door de Ubuntu-archiefspiegel-pagina te bezoeken en uw land te selecteren.

Ubuntu Archive Mirror

Als uw land meer mirrors biedt, dient u het mirroradres te identificeren en enkele tests uit te voeren op basis van ping of traceroute-resultaten.

Select Mirror Location

2. De volgende stap is het installeren van de vereiste software voor het instellen van een lokale mirrorrepository. Installeer de apt-mirror– en proftpd-pakketten en configureer proftpd als standalone systeemdaemon.

$ sudo apt-get install apt-mirror proftpd-basic
Install apt-mirror Proftpd
ProFTPD Configuration

3. Nu is het tijd om de apt-mirror-server te configureren. Open en bewerk het bestand /etc/apt/mirror.list door uw dichtstbijzijnde locaties toe te voegen (Stap 1) – optioneel, als de standaard mirrors snel genoeg zijn of als u geen haast heeft – en kies het systeempad waar pakketten moeten worden gedownload. Standaard gebruikt apt-mirror de locatie /var/spool/apt-mirror voor lokale cache, maar in deze tutorial gaan we het systeempad wijzigen en de set base_path-richtlijn naar de locatie /opt/apt-mirror wijzen.

$ sudo nano /etc/apt/mirror.list
Configure apt-mirror Server.

U kunt ook andere bronlijsten voor de clean-richtlijn uitcommentariëren of toevoegen, inclusief Debian-bronnen, afhankelijk van welke Ubuntu-versies uw klanten gebruiken. U kunt bronnen toevoegen vanaf 12.04, indien gewenst, maar houd er rekening mee dat het toevoegen van meer bronnen meer vrije ruimte vereist.

Voor Debian bronlijsten, ga naar de Debian Wiki of de Debian-bronnen Lijstgenerator.

4. Het enige wat je nu nog hoeft te doen, is het maken van een map en de apt-mirror opdracht uitvoeren om de officiële Ubuntu repositories te synchroniseren met onze lokale spiegel.

$ sudo mkdir -p /opt/apt-mirror
$ sudo apt-mirror
Create apt-mirror Paths

Zoals je kunt zien, gaat apt-mirror door met indexeren en downloaden van archieven, waarbij het totale aantal gedownloade packages en hun grootte worden weergegeven. Zoals je zou kunnen bedenken, is 110-120 GB groot genoeg om wat tijd in beslag te nemen om te downloaden.

Je kunt de ls-opdracht uitvoeren om de inhoud van de map te bekijken.

Verify apt-mirror Paths

Zodra de initiële download is voltooid, zullen toekomstige downloads klein zijn.

5. Terwijl apt-mirror packages downloadt, kun je je Proftpd server configureren. Het eerste wat je moet doen is een anoniem configuratiebestand voor proftpd maken door de volgende opdracht uit te voeren.

$ sudo nano /etc/proftpd/conf.d/anonymous.conf

Voeg vervolgens de volgende inhoud toe aan het bestand anonymous.conf en herstart de proftpd-service.

<Anonymous ~ftp>
   User                    ftp
   Group                nogroup
   UserAlias         anonymous ftp
   RequireValidShell        off
#   MaxClients                   10
   <Directory *>
     <Limit WRITE>
       DenyAll
     </Limit>
   </Directory>
 </Anonymous>
Configure ProFTPD

6. Het volgende stap is om het apt-mirror pad te koppelen aan het proftpd-pad door een bind mount uit te voeren met de volgende opdracht.

$ sudo mount --bind /opt/apt-mirror/mirror/archive.ubuntu.com/  /srv/ftp/
Mount apt-mirror to ProFTP Path

Om dit te verifiëren, voer je de mount opdracht uit zonder parameter of optie.

$ mount
Verify Paths

7. Laatste stap is ervoor te zorgen dat de Proftpd server automatisch wordt gestart na het herstarten van het systeem en dat de mirror-cache directory ook automatisch wordt gemount op de ftp serverpad. Om Proftpd automatisch in te schakelen, voert u de volgende opdracht uit.

$ sudo update-rc.d proftpd enable

Om de apt-mirror cache automatisch te mounten op Proftpd, opent en bewerkt u het bestand /etc/rc.local.

$ sudo nano /etc/rc.local

Voeg de volgende regel toe vóór de exit 0 richtlijn. Gebruik ook een vertraging van 5 seconden voordat u probeert te mounten.

sleep 5
sudo mount --bind  /opt/apt-mirror/mirror/archive.ubuntu.com/ /srv/ftp/
Auto Mount Apt Mirrors

Als u pakketten ophaalt van Debian repositories, voer dan de volgende commando’s uit en zorg ervoor dat de juiste instellingen voor bovenstaand rc.local bestand zijn ingeschakeld.

$ sudo mkdir /srv/ftp/debian
$ sudo mount --bind /opt/apt-mirror/mirror/ftp.us.debian.org/debian/ /srv/ftp/debian/
Debian Repository Setup

8. Voor een dagelijkse synchronisatie van apt-mirror kunt u ook een systeemtakenplanning maken die elke dag om 2 uur ’s nachts wordt uitgevoerd. Voer het crontab-commando uit, selecteer uw voorkeurseditor en voeg de volgende regel syntaxis toe.

$ sudo crontab –e
Daily apt-mirror Synchronization

Voeg op de laatste regel de volgende regel toe.

0  2  *  *  *  /usr/bin/apt-mirror >> /opt/apt-mirror/mirror/archive.ubuntu.com/ubuntu/apt-mirror.log
Add Cron Entry for Synchronization

Elke dag om 2 uur ’s nachts zal uw systeemrepositorycache synchroniseren met de officiële mirrors van Ubuntu en een logbestand aanmaken.

Stap 2: Configureer clients

9. Om lokale Ubuntu clients te configureren, bewerkt u het bestand /etc/apt/source.list op clientcomputers en wijzigt u http protocol in ftp, vervolgens update u het systeem.

deb ftp://192.168.1.13/ubuntu trusty universe
deb ftp://192.168.1.13/ubuntu trusty main restricted
deb ftp://192.168.1.13/ubuntu trusty-updates main restricted
## Ad so on….
Configure Clients

10. Om repositories te bekijken, kunt u eigenlijk een browser openen en naar het IP-adres van de server of de domeinnaam wijzen met behulp van het FTP-protocol.

View Local Repositories

Dezelfde methode geldt ook voor Debian-clients en -servers, de enige verandering die nodig is, zijn debian-mirror en bronnenlijst.

Ook als je een nieuwe Ubuntu– of Debian-systeem installeert, geef je je lokale spiegel handmatig op met het ftp-protocol wanneer de installateur vraagt welk repository te gebruiken.

Het geweldige aan het hebben van je eigen lokale spiegelrepositories is dat je altijd up-to-date bent en je lokale clients geen verbinding hoeven te maken met internet om updates of software te installeren.

Source:
https://www.tecmint.com/setup-local-repositories-in-ubuntu/