
Es ist geschafft! Das System ist über das Cloning und Scripting endlich zum Laufen gebracht worden. Aber nun kommt die nächste Hürde, die es geht zu umschiffen. Das eigentlich nach außen hin gänzlich abgeschottete System muss auch auf einem aktuellen Stand gehalten werden. Aber wie bloß?
Die angestrebte Lösung sollte wie immer so einfach wie möglich gehalten werden. Wenn möglich soll aus Performancegründen auf den PC’s so wenig wie möglich zusätzliche Software installiert werden!
Nach langen suchen und herumexperimentieren habe ich mich für eine Proxy-Lösung entschieden.
Lösung: apt-cacher-ng (zusätzlicher Info-Link)_
Der große Vorteil von ‚apt-cacher-ng‘ liegt darin, das kein WebServer zum Betrieb benötigt wird.

Installation auf Controller-PC:
0. Schritt ≙ Vorbereitung
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# apt update OK:1 http://de.archive.ubuntu.com/ubuntu xenial InRelease OK:2 http://de.archive.ubuntu.com/ubuntu xenial-updates InRelease OK:3 http://de.archive.ubuntu.com/ubuntu xenial-backports InRelease Holen:4 http://security.ubuntu.com/ubuntu xenial-security InRelease [102 kB] Es wurden 102 kB in 0 s geholt (152 kB/s). Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut. Statusinformationen werden eingelesen.... Fertig Aktualisierung für 55 Pakete verfügbar. Führen Sie »apt list --upgradable« aus, um sie anzuzeigen. # Dateien, die aktualiert werden # ls -li *.* 131358 -rw-r--r-- 1 root root 48680414 Nov 11 12:20 pkgcache.bin 131218 -rw-r--r-- 1 root root 48618275 Nov 11 12:20 srcpkgcache.bin |
1. Schritt:
Datei herunterladen.
Wird automatisch in das Verzeichnis „/var/cache/apt/archives“ ( wie in einem temporäres Downloadverzeichnis) gespeichert.
Anschließend kann dann das Programm direkt aus dem Verzeichnis heraus installiert werden.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# apt-get -d install apt-cacher-ng Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut. Statusinformationen werden eingelesen.... Fertig Vorgeschlagene Pakete: doc-base avahi-daemon Die folgenden NEUEN Pakete werden installiert: apt-cacher-ng 0 aktualisiert, 1 neu installiert, 0 zu entfernen und 55 nicht aktualisiert. Es müssen 504 kB an Archiven heruntergeladen werden. Nach dieser Operation werden 1.616 kB Plattenplatz zusätzlich benutzt. Holen:1 http://de.archive.ubuntu.com/ubuntu xenial/universe amd64 apt-cacher-ng amd64 0.9.1-1ubuntu1 [504 kB] Es wurden 504 kB in 0 s geholt (1.727 kB/s). Herunterladen abgeschlossen; Nur-Herunterladen-Modus aktiv |
oder was einfacher ist :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# apt install apt-cacher-ng Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut. Statusinformationen werden eingelesen.... Fertig Vorgeschlagene Pakete: doc-base avahi-daemon Die folgenden NEUEN Pakete werden installiert: apt-cacher-ng 0 aktualisiert, 1 neu installiert, 0 zu entfernen und 55 nicht aktualisiert. Es müssen noch 0 B von 504 kB an Archiven heruntergeladen werden. Nach dieser Operation werden 1.616 kB Plattenplatz zusätzlich benutzt. Vorkonfiguration der Pakete ... Vormals nicht ausgewähltes Paket apt-cacher-ng wird gewählt. (Lese Datenbank ... 92384 Dateien und Verzeichnisse sind derzeit installiert.) Vorbereitung zum Entpacken von .../apt-cacher-ng_0.9.1-1ubuntu1_amd64.deb ... Entpacken von apt-cacher-ng (0.9.1-1ubuntu1) ... Trigger für man-db (2.7.5-1) werden verarbeitet ... Trigger für systemd (229-4ubuntu19) werden verarbeitet ... Trigger für ureadahead (0.100.0-19) werden verarbeitet ... apt-cacher-ng (0.9.1-1ubuntu1) wird eingerichtet ... Trigger für systemd (229-4ubuntu19) werden verarbeitet ... Trigger für ureadahead (0.100.0-19) werden verarbeitet ... |
1 2 3 4 5 6 7 8 9 10 11 |
# /etc/init.d/apt-cacher-ng status ● apt-cacher-ng.service - Apt-Cacher NG software download proxy Loaded: loaded (/lib/systemd/system/apt-cacher-ng.service; enabled; vendor preset: enabled) Active: active (running) since Sa 2017-11-11 13:39:15 CET; 38min ago Main PID: 11778 (apt-cacher-ng) CGroup: /system.slice/apt-cacher-ng.service └─11778 /usr/sbin/apt-cacher-ng SocketPath=/run/apt-cacher-ng/socket -c /etc/apt-cacher-ng ForeGround=1 Nov 11 13:39:15 Server-01 systemd[1]: Starting Apt-Cacher NG software download proxy... Nov 11 13:39:15 Server-01 apt-cacher-ng[11778]: WARNING: No configuration was read from file:sfnet_mirrors Nov 11 13:39:15 Server-01 systemd[1]: Started Apt-Cacher NG software download proxy. |
2. Schritt:
Sicherungskopie dieser Datei anlegen ( für den Fall der Fälle,Murphys-Gesetz!):
1 |
# cp /etc/apt-cacher-ng/acng.conf /etc/apt-cacher-ng/acng.conf.org |
1 |
# nano /etc/apt-cacher-ng/acng.conf |
Orginaldatei: acng.conf
Damit der Proxy-Server so arbeitet wie man es erwartet sind folgende Einträge in der Datei vorzunehmen.
1 2 3 4 5 |
CacheDir: /Daten/cache/apt-cacher-ng LogDir: /Daten/log/apt-cacher-ng Port:3142 # Bitte diesen Eintrag nicht ändern ReportPage: acng-report.html |
Neue Verzeichnisse anlegen:
von „/var/cache/apt/archives“ -> /Daten/cache/apt-cacher-ng
Wenn schon das Datenverzeichnis ‚verbogen‘, dann bin ich der Meinung, das auch das Logverzeichnis in die Nähe der Daten gehört, also erfolgt eine Schiebung von „/var/log/apt/archives“ -> /Daten/log/apt-cacher-ng.
1 2 3 4 5 6 7 8 9 10 11 12 |
# /etc/init.d/apt-cacher-ng stop # mkdir /Daten # mkdir /Daten/cache # mkdir /Daten/cache/apt-cacher-ng # mkdir /Daten # mkdir /Daten/log # mkdir /Daten/log/apt-cacher-ng # chown -R apt-cacher-ng:apt-cacher-ng /Daten/cache/apt-cacher-ng # chmod -R a+rX,g+rw,u+rw /Daten/cache/apt-cacher-ng # chown -R apt-cacher-ng:syslog /Daten/log |
Aber Achtung: Ganz wichtig ist hier die Rechtevergabe! Wenn der Proxy-Server die Datenverzeichnisse nicht so verwendet wie man es eigentlich erwartet, unbedingt auf Rechte achten. Also Vorlage können die ursprünglichen Verzeichnisse dienen. Ich habe mir angewöhnt mit einem ganz simplen Trick zu überprüfen, ob der Proxy so arbeitet, wie meine Konfiguration es einen erwarten lässt.
Bevor man einen kleinen Testlauf durchführt, muss der Proxy-Server-Dienst erst neu gestartet werden:
1 2 3 4 |
/etc/init.d/apt-cacher-ng restart besser /etc/init.d/apt-cacher-ng force-reload /etc/init.d/apt-cacher-ng restart |
Test: apt update
Die Datei bzw. HTML-Datei „acng-report.html“ kann von einem externen Browser aus aufgerufen werden. „<IpNummer>:3142“ im Browser Adresszeile eingeben und dann sehen Sie folgende Seiten.
ERROR!!!!! ERROR !!!! Vorsicht Falle: Nepper, Schlepper … „Adminfänger“
Der Proxy-Server arbeitet zwar gut, benutzt aber nicht das neue Datenverzeichnis „/Daten/cache/apt-cache-gn“. Beim Test des Proxy-Server mit dem einfachen Befehl „apt update“ zeigt sich, das er immer noch das alte Verzeichnis „/var/cache/apt-cache-ng“ verwendet, obwohl eine Kontrolle von mir ergab, dass die Einträge in der Datei „acgn.conf“ völlig korrekt sind.
Panik kam langsam auf, woher kommt dieses Verhalten.
Nach einem frustrierendem Tag der Beschäftigung mit diesem Problem, kam die Lösung: Wie immer eigentlich ganz einfach. „Lesen, Lesen auch wenn einem Admin keinem Spaß macht und wenn die Datei noch so merkwürdig aussieht!“ Im Verzeichnis „/etc/apt-cache-ng/“ gibt es eine Datei Namens „zz_debconf.conf“ steht:
“
# This is a configuration generated file managed by the package configuration
# scripts of apt-cacher-ng. All manual changes here will be overriden.
# To reconfigure particular settings, please run:
# dpkg-reconfigure apt-cacher-ng -plow
# See acng.conf and apt-cacher-ng documentation for more details.
# To override this values permanently, put the assignments into a file
# like /etc/apt-cacher-ng/zzz_override.conf .
# Proxy set by other config files(s)
# Port is set by other config file(s)
# BindAddress is set by other config file(s)
#CacheDir: /var/cache/apt-cacher-ng # default or overridden since ‚/var/cache/a$
#CacheDir: /Daten/cache/apt-cacher-ng <– kann man so einfügen
# besser ist es aber alles ausmarken!
# PassThroughPattern: setting is not configured by debconf „
Installation auf Arbeitsplatz-PC:
Ein Schritt ist hier nur vorzunehmen:
Erstellen einer Datei im Verzeichnis „/etc/apt/apt.conf.d“.
Name der Datei: 00apt-proxy; xx kann ein Zahlenpaar beliebig zwischen 00 .. 98 sein.
Der Inhalt sieht wie folgt aus:
1 |
Acquire::http::Proxy "http://192.168.0.61:3142"; |
Das bequeme oder schöne an dieser Lösung, jeden Falls in unserem System ist, das man nur ein „Hash“ # vor diese Zeile zu setzen braucht und die PC’s einschließlich der Controller-PC können wieder ohne Proxy-Server arbeiten.
Der Befehl kann von Hand oder per Script ganz einfach abgesetzt werden ohne das man sich größere Gedanken machen muss.
Der zweite Teil folgt bald hier …..