openSuSE10.2 Updateserver selbst gemacht
Wer viele openSuSE-PCs im LAN betreibt, wünscht sich sicher einen lokalen Updateserver, den alle Clients via smart als Updatequelle nutzen können. Dies spart Bandbreite und die Updates können z.B. nachts oder am Wochende heruntergeladen werden.
Ich gehe davon aus, dass Sie wissen, wie man Pakete installiert, einen ftp-Server konfiguriert, Konfigurationsdateien schreibt/ändert usw. Beschrieben wird ein Update-Server für openSUSE10.2-Clients.
So gehts Schritt-für-Schritt:
Zuerst die Server-Installation:
- Installieren Sie einen ftp-Server (z.B. vsftp).
- Konfigurieren Sie diesen, dass er anonyme Anfragen zuläßt.
- Hier in meinem LAN etwa ist das ftp-root /home/ftp/download auf dem Server samba. Mit folgendem Befehl erstellen Sie einen Mirror der Update-quellen:
# mkdir /home/ftp/download/10.2(Achtung: von /usr bis zum Ende der letzten Zeile alles in eine Zeile schreiben!).
cd /home/ftp/download/10.2
/usr/bin/rsync -avrl --stats --delete --exclude-from=../list ftp5.gwdg.de::pub/linux/suse/ftp.suse.com/suse/update/10.2/ . 1>../you_server_update_result_10.2
Ich nutze rsync. Der Parameter
exclude-from=../list
liest eine Datei "list" aus, die als Einträge
*src*
*ppc*
*_64*
*OpenOffice*
hat. Dies sorgt dafür, dass nur die Architektur i386_32bit gespiegelt wird. OpenOffice wird über eine andere Quelle synchronisiert, deshalb ist es hier in der exclude-list enthalten. Der nächste Parameter nimmt Kontakt mit dem Server
ftp5.gwdg.de::pub/linux/suse/ftp.suse.com/suse/update/10.2/
auf. Der zweifache Doppelpunkt bewirkt, dass keine Username/Passwort-abfrage stattfindet, sondern dass man mit einem laufenden rsync-daemon auf dem Remotesystem spricht. Dies geschieht üblicherweise auf TCP/873. Auf dem Server ftp5.gwdg.de läuft so ein Daemon. Dann kommt der Punkt (.) für das Ziel, das aktuelle Verzeichnis. Der abschließende "/" hinter der Quelle sagt rsync, dass er vom Zielverzeichnis aus (.) nicht nochmal die gesamte Verzeichnisstruktur der Quelle aufbauen soll, sondern die gefundenen Dateien ohne vorangehende Verzeichnisstruktur ablegen soll. Schwierig zu erklären, siehe# man rsync1>../you_server_update_result_10.2
bewirkt, dass die Konsolausgaben in einer Logdatei landen, die ich hinterher per mail verschicken kann.
Das erstmalige Synchronisieren dauert etwas (bei mir hier mit 1024kbps etwa 6 Stunden). - Danach liegen 3 Verzeichnisse im Verzeichnis 10.2:
repodata
rpm
scripts
repodata enthält v.a. xml-Dateien, die die Patches beschreiben, rpm enthält die eigentlichen Patches und scripts enthält ein script zum Holen von Mirco$oft-fonts. Naja. Der Prozess der Aktualisierung der drei Verzeichnisse läßt sich über cron prima automatisieren.
Jetzt gehts zu den Clients:
- Installieren Sie smart. (Achtung, nicht die smartmon-tools, die sind zur Überwachung von IDE-Festplatten da.)
- Erstellen Sie eine Datei /etc/smart/channels auf dem Client:
[samba-oss10.2]Der Eintrag in [...] ist eine freie Zeichenkette. Nehmen Sie was sprechendes.
type = rpm-md
name = openSuSE 10.2 update repository
baseurl = ftp://samba/download/10.2/
type ist rpm-md
name ist frei und sprechend
baseurl ist das Verzeichnis über den drei oben genannten Verzeichnissen. - Geben Sie auf dem Client als root folgendes in eine Konsole ein:
# smart channel --remove-allDies leert erst mal den Cache des smart-clients.
# smart channel -y --add /etc/smart/channels
# smart update
Dann fügt man den neuen Channel aus der Datei /etc/smart/channels hinzu.
Zuletzt wird der lokale Cache wieder aufgefrischt, so dass der smart-Client weiß, - was er beim Befehl
# smart upgradepatchen soll. - Das wars auch schon. smart upgrade läßt sich natürlich auch über cron steuern. Wer dies vor hat, sollte smart upgrade -y in die crontab schreiben, da damit alle Fragen von smart automatisch mit "ja" beantwortet werden. Eine Liste von aktuellen smart-channels und mirrors findet sich hier .