Automatische Updates unter Ubuntu nutzen

Egal ob VServer, Root-Server, die Server in eurer Firma oder der Home-Server zuhause. Jeder Serverbetreiber bzw. Administrator weiß es zu wissen, das eine regelmäßige Installation von Updates wichtig ist. Hierbei werden Fehlerkorrekturen vorgenommen, welches die Stabilität des Betriebssystems verbessert und insbesondere potentielle oder erwiesene Sicherheitslücken geschlossen werden.


Wie bei jedem Betriebssystem müssen auch bei Ubuntu Linux regelmäßig, die Updates installiert werden.

Aber wer hat immer Lust, regelmäßig vor dem PC zu hocken und mit Hilfe eines SSH-Client (Wie z.B. PuTTY) den Befehl sudo apt-get update && apt-get dist-upgrade auszuführen um das System auf dem neustem Stand zu halten.


Ubuntu Server bietet die Möglichkeit an, regelmäßig automatisch die verfügbaren Sicherheitsupdates und ggf. andere Updates zu installieren zu lassen, hierbei bietet Ubuntu das Paket unattended-upgrades an, welches die automatische Installation übernimmt.


Bevor wir mit der Einrichtung der automatischen Installation der Updates bzw. mit der Installation des Pakets unattended-upgrades loslegen, beginnen wir erst mal mit der Installation der ggf. noch verfügbaren Updates:


sudo apt-get update && apt-get dist-upgrade


Nachdem alle verfügbare Updates installiert sind, kann das Paket unattended-upgrades mit apt-get install unattended-upgrades installiert. Die Konfiguration erfolgt über die Datei /etc/apt/apt.conf.d/50unattended-upgrade, welche später mit einem Texteditor eurer Wahl geöffnet wird. Ich verwende hier den Vim-Editor, welches mit dem Befehl "vi" aufgerufen werden kann.


VORSICHT: Bitte mit den Konfigurations-Dateien behutsam umgehen, denn jeglicher fehlerhafter Eintrag kann zur Probleme führen!


Diese Datei wird mit dem Befehl sudo vi /etc/apt/apt.conf.d/50unattended-upgrade geöffnet und hier sieht man den ersten Abschnitt:

Code
  1. // Automatically upgrade packages from these (origin:archive) pairs
  2. Unattended-Upgrade::Allowed-Origins {
  3. "${distro_id}:${distro_codename}";
  4. "${distro_id}:${distro_codename}-security";
  5. "${distro_id}ESM:${distro_codename}";
  6. // "${distro_id}:${distro_codename}-updates";
  7. // "${distro_id}:${distro_codename}-proposed";
  8. // "${distro_id}:${distro_codename}-backports";
  9. };

In diesem Abschnitt kann festgelegt werden, welche Update-Pakete installiert werden sollen. Standardmäßig werden nur die Sicherheitsupdates installiert. Aber wenn man möchte, können auch die optionalen Updates installiert werden. Dabei müssen hier diese zwei Zeichen "/" vor dem ""${distro_id}:${distro_codename}-updates";" entfernt werden. Von den proposed und backsports Archive würde ich lieber die Finger weg lassen, erst recht auf Produktivsystemen.


Im nachfolgenden Abschnitt dieser Datei können Pakete von der automatischen Aktualisierung ausgeschlossen werden. Hierzu einfach die Beispiele abändern, entweder die Schrägstriche entfernen oder eine neue Zeile hinzufügen.

Code
  1. // List of packages to not update (regexp are supported)
  2. Unattended-Upgrade::Package-Blacklist {
  3. // "vim";
  4. // "libc6";
  5. // "libc6-dev";
  6. // "libc6-i686";
  7. };

Wichtig: Wenn eine neue Zeile hinzugefügt wird, dann müssen diese Zeichen wie im diesem Beispiel oben verwendet werden.


Wenn man Benachrichtigt werden möchte, welche Updates erfolgreich installiert wurden oder welche Fehler bei einige Updates aufgetreten sind, muss zuerst in dieser Zeile //Unattended-Upgrade::Mail "root"; die Schrägstriche entfernt werden und dann den "root" durch die eigene E-Mail-Adresse (Beispiel:Unattended-Upgrade::Mail "deinemail@deinedomain.de";) ersetzt werden. Sollen nur bei auftretende Fehler, eine Benachrichtigung erfolgen, dann muss in dieser Zeile //Unattended-Upgrade::MailOnlyOnError "true"; auch die beiden Schrägstriche entfernt und ggf. "false" durch "true" ersetzt werden.

WICHTIG: Um Benachrichtigungen nutzen zu können, muss auf dem Server ein Mailserver (wie z.B. Postfix) konfiguriert werden.


Als letztes muss noch Konfiguriert werden wann auf Updates überprüft werden soll. Dies geschieht in dieser Datei /etc/apt/apt.conf.d/10periodic, welches ggf. zuerst mit dem diesem Befehl sudo touch /etc/apt/apt.conf.d/10periodic erstellt werden und dann mit sudo vi /etc/apt/apt.conf.d/10periodic geöffnet.


Nun kann man diese Konfigurationsvariablen eingefügt oder wenn die Datei schon vorhanden ist angepasst werden.

Code
  1. APT::Periodic::Update-Package-Lists "1";
  2. APT::Periodic::Download-Upgradeable-Packages "1";
  3. APT::Periodic::AutocleanInterval "7";
  4. APT::Periodic::Unattended-Upgrade "1";

Hier noch die Beschreibungen zu den einzelnen Konfigurationsvariablen:

1. APT::Periodic::Update-Package-Lists "1"; Sorgt dafür, dass die Paketlisten täglich aktualisiert werden.
2. APT::Periodic::Download-Upgradeable-Packages "1"; Lädt die verfügbaren Updates herunter, die bei letzten Aktualisierung herausgekommen sind.
3. APT::Periodic::AutocleanInterval "7"; Prüft alle 7 Tage, welche Pakete veraltet sind oder nicht mehr Benötigt werden und entfernt diese
vom System.
4. APT::Periodic::Unattended-Upgrade "1"; Bestimmt, wann die heruntergeladenen Update-Pakete installiert werden.


Die Zahlen bedeuten, das in welchen Intervallen (in Tagen) der jeweilige Vorgang ausgeführt werden soll. Zum Beispiel beim APT::Periodic::Update-Package-Lists "1"; wird einmal pro Tag die Paketliste aktualisiert. Würde in diesem Variable, die Zahl "2" drinstehen, dann wird diese jeden zweiten Tag ausgeführt und wenn die Zahl auf "0" gesetzt wird, dann ist diese Variable deaktiviert.


Im Pfad "/var/log/unattended-upgrades/" befinden sich die Logfiles, welches von Unattended-Upgrades angelegt werden. In diese Logfiles können werden genaue Informationen aufgezeichnet, welche Updates installiert und welche Befehle ausgeführt wurden. Denn bei einem Fehler, können in diese Logfiles nachgeschaut werden, welche Fehler genau aufgetreten sind und es dient auch zur Diagnose bei der Fehlerbehebung.

    Kommentare