Zum Entlasten der Internetleitung an unserer Schule setzen wir die Software apt-cacher-ng ein. Diese läuft bei uns in einem LXC-Container am Proxmox.
Apt-cacher-ng bietet eine Zwischenspeicher (Cache) für Debian-basierte Computer im Netzwerk an und sorgt so dafür, dass Updates bzw. neue Pakete nicht von jedem Client einzeln aus dem Internet geladen werden müssen.
Da die Sammlung der Pakete mit der Zeit anwächst haben wir den Speicher auf unser NAS ausgelagert und binden den Zugriff darauf über die fstab ein.
Die Installation von apt-cacher kann einfach als root über die Kommandozeile erledigt werden:
apt install apt-cacher-ng
Die Konfiguration des apt-cachers kann dann in der Konfigurationsdatei /etc/apt-cacher-ng/acng.conf erledigt werden:
nano /etc/apt-cacher-ng/acng.conf
Hier kann dann z.B. angepasst werden, wo die gecachten Files abgelegt werden, auf welchem Port der apt-cacher-ng auf Verbindungen wartet (Standard: 3142), …
Nach der Konfiguration und Neustart des Services über
/etc/init.d/apt-cacher-ng restart
ist der apt-cacher auch schon einsatzbereit. Über http://IP-Adresse-des-Servers:3142/acng-report.html kann im Webbrowser auch eine Infoseite mit Statistiken angezeigt werden.
Die Clients müssen einmalig für die Nutzung des apt-cachers konfiguriert werden.
Für unsere schuleigenen Computer, die unter Ubuntu laufen, nutze ich dazu folgendes Installationsscript:
#!/bin/bash
ip=10.X.X.X
port=3142
proxy_file="/etc/apt/apt.conf.d/01proxy"
echo "Acquire::http { Proxy \"http://$ip:$port\"; };" > $proxy_file
echo 'Acquire::https { Proxy "false"; };' >> $proxy_file
Für die Lernsticks der Schüler ist das ganze ein bisschen angepasst, hier soll der apt-cacher ja nur eingestellt werden, wenn sie sich im Schulnetzwerk befinden und der apt-cacher erreichbar ist. Hier erfolgt die Installation in zwei Schritten:
#!/bin/bash
#Script: 02-proxy.sh
ip=10.X.X.X
port=3142
proxy_file="/etc/apt/apt.conf.d/01proxy"
if nc -zvv $ip $port 2>&1 | grep open; then
echo "Acquire::http { Proxy \"http://$ip:$port\"; };" > proxy_file
else
rm -f $proxy_file
fi
Obiges Script wird von folgenden Installationsscript so installiert, dass es im Falle einer Netzwerkverbindung automatisch ausgeführt wird.
#!/bin/bash
sudo mv 02-proxy.sh /etc/NetworkManager/dispatcher.d/
sudo chmod a+x /etc/NetworkManager/dispatcher.d/02-proxy.sh
sudo chown root /etc/NetworkManager/dispatcher.d/02-proxy.sh
sudo chgrp root /etc/NetworkManager/dispatcher.d/02-proxy.sh
echo "Installation abgeschlossen."
0 Kommentare