Artikelformat
27. April 2007

Anleitung Server Upgrade durch CRON-APT

Cron-apt ist ein Programm um über ein Server Upgrade mittels APT informiert zu werden.

Einfache Installation von Cron-apt

Um cron-apt zu installieren muss das folgende Paket installiert werden:

cron-apt

Achtung bei Ubuntu wird bei der Installation Postfix konfiguriert; nachvollziehbar durch: dpkg-reconfigure –priority=low postfix. Es wird auch noch resolvconf installiert das macht den Netzwerkmanger unnütz. (Beides Angaben von Ubuntunutzern aus Ubuntuusers.de)

Einrichtung Cron-apt und der automatisierten Email bzgl. Server Upgrade

Die Konfigurationsdateien von cron-apt liegen im Verzeichnis /etc/cron-apt/.

Wichtige Konfigurationsdateien von Cron-apt

Die wichtigsten Konfigurationsdateien befinden sich im Ordner /etc/cron-apt/action.d. Standardmäßig, nach der Installation, befindet sich dort:

0-update

Der Inhalt der Datei ist:
update -o quiet=2
–> Update der auf den Servern befindlichen Quellen.

3-download

In dieser Datei steht:
autoclean -y
dist-upgrade -d -y -o APT::Get::Show-Upgraded=true

–> Es werden die Datein zum Aktualisieren bzw. Installieren herunter geladen.

Weitergehende Einstellungen von Cron-apt

Mailbenachrichtigung bei Server Upgrade
Wenn man nicht nur die Updates herunter laden will, sondern sich darüber informieren lassen will dann ist unter /usr/share/doc/cron-apt/examples/9-notify ein Beispiel gegeben um das zu verwirklichen:

-q -q –no-act upgrade

Um tatsächlich informiert zu werden muss die Datei nach /etc/cron-apt/ation.d/ kopiert werden und in /etc/cron-apt/config die Mailadresse an zu geben und das Ereigniss, wann dieses geschickt werden soll.

MAILTO=”DEINE@EMAIL-ADRESSE.de”
MAILON=”upgrade”

Zeitsteuerung des Server Upgrade
In der Standard Installation würde bei dauerhaft online befindlichen System cron-apt immer um 04:00 Uhr ausgeführt werden. Dies ist geregelt unter: /etc/cron.d/cron-apt

# Every night at 4 o’clock.
0 4 * * * root test -x /usr/sbin/cron-apt && /usr/sbin/cron-apt
# Every hour.
# 0 * * * * root test -x /usr/sbin/cron-apt && /usr/sbin/cron-apt
/etc/cron-apt/config2
# Every five minutes.
# */5 * * * * root test -x /usr/sbin/cron-apt && /usr/sbin/cron-apt
/etc/cron-apt/config2

Bei einem nicht dauerhaft online befindlichen System würde dieser Croneintrag dazu führen, dass bei Systemstart cron-apt ausgeführt werden würde. Wenn dies nicht gewünscht ist sollte dieser Eintrag gelöscht werden und statt dessen mit einem Softlink (Symlink) in den entsprechenden Cron. hourly oder .weekly kann cron-apt auch gesteuert werden.

ln -s /usr/sbin/cron-apt /etc/cron.daily/cron-apt

Cron-apt testen

Um cron-apt zu testen im Terminal den folgenden Befehl ausführen:
cron-apt -s

Besondere Fälle
Server Upgrade automatisch installieren (Achtung! zur Sicherheit spezielle source.list verwenden)

Unter /etc/cron-apt/action.d/3-download das -d (only download) entfernen.

Spezielle source.list
Man kann cron-apt eine spezielle source.list zuweisen, um beispielsweise nur security-updates ein spielen zu können. Dazu erstellt man eine neue source.list im Order /etc/apt/ und passt diese seinen Bedürfnissen an.Änderung der conf

OPTIONS=”-q -o Dir::Etc::SourceList=/etc/apt/security-sources.list”

Aptitude oder apt-file benutzen:
Falls man statt apt-get mehr Aptitude vertraut kann auch dieses verwendet werden.
In der config einfach APTCOMMAND=/usr/bin/aptitude auskommentieren. Bitte aber darauf achten,dass einige Schalten verändert werden müssen, wie beispielsweise “-o quiet” statt “-q” bei OPTIONS

Beispiel einer Email bei Server Upgrade

CRON-APT RUN [/etc/cron-apt/config]: Fri Sep 29 04:00:02 CEST 2006 CRON-APT SLEEP: 774, Fri Sep 29 04:12:56 CEST 2006 CRON-APT ACTION: 8-install CRON-APT LINE: dist-upgrade -y -o APT::Get::Show-Upgraded=true Reading Package Lists…
Building Dependency Tree…
The following packages will be upgraded:
libssl0.9.7 openssl
2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 3168kB of archives.
After unpacking 506kB of additional disk space will be used.
Get:1 http://security.debian.org stable/updates/main libssl0.9.7 0.9.7e-3sarge3 [2265kB]
Get:2 http://security.debian.org stable/updates/main openssl 0.9.7e-3sarge3 [903kB] Fetched 3168kB in 0s (3615kB/s) (Reading database … 27744 files and directories currently installed.) Preparing to replace libssl0.9.7 0.9.7e-3sarge2 (using …/libssl0.9.7_0.9.7e-3sarge3_i386.deb) …
Unpacking replacement libssl0.9.7 …
Preparing to replace openssl 0.9.7e-3sarge2 (using …/openssl_0.9.7e-3sarge3_i386.deb) …
Unpacking replacement openssl …
Setting up libssl0.9.7 (0.9.7e-3sarge3) …

Setting up openssl (0.9.7e-3sarge3) …

Anmerkung zum automatisierten Server Upgrade : Ich habe diesen Artikel zuerst auf ubuntuusers.de verfasst, d.h. dort vorhandene Änderungen oder Anmerkungen speziell für Ubuntu könnten hilfreich sein.