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.

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:
- Minimaal 120G vrije ruimte
- 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.

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.

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


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

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

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.

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>

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/

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

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/

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/

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

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

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….

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.

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/