YOU-Updates für Clients immer aktuell

Seite: 2/3
(1769 Worte insgesamt im Text)
(11935 mal aufgerufen)  Druckerfreundliche Ansicht

Vorbereitungen auf dem Server

  • Suchen Sie sich zunächst einen Mirror-Server in ihrer Nähe, welcher Updates für die auf ihren Clients installierte openSUSE Version anbietet.
  • Prüfen Sie manuell, ob das Verzeichnis über rsync (schont die Bandbreite) oder nur über wget (funktioniert eigentlich immer) gespiegelt werden kann.
  • Wenn der Test erfolgreich verlaufen ist, können Sie den entsprechenden Aufruf als Cronjob automatisch zu nachtschlafender Zeit ablaufen lassen.

Wir haben einmal Beispielhaft direkt den rsync-Server von opensuse.org herausgesucht. Zunächst prüfen wir, ob der Server auch wirklich die von uns benötigten Verzeichnisse per rsync bereitstellt:

rsync rsync.opensuse.org::opensuse-updates

Dieser Befehl liefert bei erfolgreicher Ausführung eine Liste mit den zur Verfügung gestellten Update-Archiven. Jetzt haben wir den Server und den passenden Pfad um einmal einen Test mit rsync zu wagen:

rsync -navz rsync.opensuse.org::opensuse-updates/11.0

Durch den Schalter "n" wird nur ein Testlauf durchgeführt - die Übertragung passiert noch nicht wirklich. Allerdings können wir schon einmal abschätzen, wie groß der benötigte Platz ungefähr sein wird. Durch das "v" bekommen wir am Ende mehr Informationen angezeigt - so auch über die gesammte Größe (total size) des Verzeichnisses in Byte.

Um ein wenig Platz zu sparen laden wir keine Source-RPMs herunter - diese werden normalerweise an den Clients ja sowieso nicht installiert:

rsync -navz --exclude="*.src.rpm" rsync.opensuse.org::opensuse-updates/11.0

Nun wird schon weniger übertragen - und das ist gut so. Falls Sie nur Clients mit einer Architektur (etwa i386) haben, können Sie den Platzverbrauch noch weiter reduzieren: fügen Sie einfach weitere "--exclude="-Statements an. Der folgende Befehl würde etwa für reine 32bit Clients ausreichen und verbraucht lokal nur die Hälfte bis ein Drittel des Platzes::

rsync -navz --exclude="src" --exclude="x86_64" --exclude="ppc" rsync.opensuse.org::opensuse-updates/11.0

Nun soll es aber endlich losgehen - dafür benötigen wir noch das passende Verzeichnis auf dem Server in welchem die Clients später nach Updates suchen:

mkdir -p /srv/tftp/update/11.0

Damit können Sie auch "normale" Clients updaten. Sie müssen dazu nur an den Clients über 'YaST2' --> 'Software Repositories' einen neuen Server hinzufügen und dort folgenden Werte eintragen:

URL-Typ:FTP
Servername:install
Verzeichnis auf dem Server:update/11.0

Jetzt spiegeln wir die entsprechenden Verzeichnisse und Dateien lokal:

rsync -az --stats --delete --delete-after --exclude=*.src.rpm rsync.opensuse.org::opensuse-updates/11.0 /srv/tftp/update/ 1>>/var/log/rsync_11.0.log

Durch die Option "--stats" bekommen wir am Ende der Übertragung noch ein wenig Information und durch "--delete" werden auf dem Mirror-Server nicht mehr vorhandene Patches auch lokal gelöscht.

Da wir die normale Ausgabe des Befehls in die Datei /var/log/rsync_11.0.log umleiten, können wir später immer nachvollziehen, was wann passiert ist. Fehler werden nicht umgeleitet und damit immer direkt an den Admin per Mail geschickt.

Jetzt fehlt zu unserem Glück nur noch ein Eintrag in der "Crontab", damit der Datenaustausch zukünftig automatisch und ohne unser Eingreifen abläuft. Dazu rufen wir mit dem Befehl: crontab -e einen Editor auf und tragen dort die folgende, eine Zeile ein:

0 2 * * 4 /usr/bin/rsync -az --stats --delete --exclude=*.src.rpm rsync.opensuse.org::opensuse-updates/11.0 /srv/tftp/update/11.0 1>>/var/log/rsync_11.0.log

Damit wird jeden Donnerstag um 02:00 Uhr nachts der Abgleich durchgeführt. Sollte ein Fehler auftreten, werden wir per Mail informiert.

Jetzt fehlt nur noch ein Eintrag beim jeweiligen Client im LDAP-Server, der dem Client sagt, dass er seine Software updaten soll und woher er die Updates bekommt. Am Ende sind also bei jedem Client z.B. noch die LDAP-Attribute:

clientMustUpdate: yes
und
clientUpdatePath: online_update.sh

zu setzen. Auch dies kann man wieder automatisieren - damit suchen dann die Client dann nicht bei jedem neuen Bootvorgang auf dem Server sondern nur noch, wenn auch tatsächlich neue Updates vorliegen. Aber wir wollen ja nicht gleich alles verraten... icon_wink




Kommentare

Einen Kommentar hinzufügen



 Suchen:


 Umfrage

(Nur für angemeldete Benutzer)

Was wird hier am meisten vermisst?

[ Ergebnis | Umfragen ]

Stimmen: 621
Kommentare: 0

 Zitate

CTRL-ALT-DEL. Auch STRG-ALT-ENTF genannt

-- anonymous