DPotW: cron-apt
Die dieswöchige Debian-Package of the Week ist cron-apt, ein Tool, mit dessen Hilfe unter anderem das automatische Ausrollen von Security-Updates auf eine große Zahl von Systemen drastisch vereinfacht wird.
Eigentlich ist das, was cron-apt tut, denkbar einfach: Es ruft aus dem cron regelmäßig die Kombination apt-get update; apt-get --download-only dist-upgrade auf und stellt dem Systemverwalter das Ergebnis per Mail zu.
Was so einfach klingt, ist in der Praxis sehr hilfreich, weil auf diese Weise jedes einzelne System ständig überprüft, ob es aktuell ist. Sprich, man kann beim Update ruhig einzelne Systeme vergessen, sie brüllen Dich beim nächsten cron-Zyklus selbsttätig wieder an, und das so lange, bis Du sie mit dem Update versorgt hast.
Obwohl cron-apt natürlich die Updates auch gleich installieren könnte, habe ich mich zu diesem Schritt bisher noch nicht getraut: Meine cron-apts laden die Updates sofort nach Verfügbarkeit auf das Zielsystem; die eigentliche Installation mache ich aber noch manuell. Dabei kann ich mir gut vorstellen, dass die Konfigurationsfähigkeit es hergeben müsste, das unkritische Packages wie das stündliche Virenpatternupdate sofort auch installiert werden. Probiert habe ich das freilich bisher genausowenig wie die Verwendung von aptitude anstelle des klassischen apt-get, was ab sarge aktuell werden könnte.
Um die Last auf den Mirrors besser zu verteilen, wartet ein aufgerufenes cron-apt erstmal eine zufällige Zeit, bevor es mit dem Download beginnt.
Was ich auch sehr nett finde, ist die Möglichkeit, nur dann eine Mail zu schicken, wenn sich die Ausgabe des Installationstools gegenüber dem letzten Aufruf geändert hat. Das ermöglicht häufigen Aufruf, ohne die Mailbox zu bombardieren.
cron-apt nützt sowohl auf stable- als auch auf unstable-Systemen. Auf stable-Systemen erhält man von cron-apt Informationen, wenn neue Security-Updates bzw. Point Releases verfügbar sind. Oft sind die Mails von cron-apt schon da, bevor überhaupt das Advisory erschienen ist. Auf unstable-Systemen kommen natürlich mehr Mails, die einen daran erinnern, dass das lokale unstable nicht mehr bleeding edge ist.
Zum Abschluss hier noch meine cron-apt-Konfiguration, die stündlich nach Updates guckt, diese auch sofort herunterlädt (aber nicht installiert), aber nur bei Veränderungen eine Mail schickt. Für den Fall, dass das Update nicht sofort ausgeführt wurde, gibt es einmal nächtlich eine Erinnerung. Bedingt durch das automatische Herunterladen und den Diff-Check gibt es bei neu erschienenen Packages zwei Mails im Stundenabstand - die erste zeigt, dass neue Packages da sind und dass sie heruntergeladen wurden, die zweite zeigt dann nur noch, dass neue Packages auf Installation warten - und nach erfolgter Installation auch eine "Bestätigung", dass nix neues mehr auf Installation wartet. Damit wird Teamwork unterstützt, weil man sieht, dass jemand anders schon aktiv war - und das ganz automatisch.
/etc/cron.d/cron-apt
0 4 root test -x /usr/sbin/cron-apt && /usr/sbin/cron-apt
0 * root test -x /usr/sbin/cron-apt && /usr/sbin/cron-apt /etc/cron-apt/config /etc/cron-apt/config-hourly
/etc/cron-apt/config
MAILTO="mh+$(hostname --fqdn)-cron-apt@zugschlus.de"
MAILON="upgrade"
DIFFONCHANGES=prepend
/etc/cron-apt/config-hourly
MAILON="changes"
Comments
Display comments as Linear | Threaded