Automatische Updates (Debian)

Aus MattWiki

Anleitung, um automatische Updates, z. B. Sicherheitsupdates, auf einem Debian-System zu installieren / aktivieren.

Quelle: https://wiki.debian.org/UnattendedUpgrades

Voraussetzungen

  • Debian 8 oder höher

Konzept

Paket Unattended-Upgrades kümmert sich um die Upgrades selbst.

Paket apt-listchanges kümmert sich um Benachrichtigungen, z. B. per Mail.

Installation

Softwarepakete installieren:

# apt-get install unattended-upgrades apt-listchanges

Konfiguration

Konfiguration anpassen:

# nano /etc/apt/apt.conf.d/50unattended-upgrades

In der Konfig-Datei beispielsweise folgende Zeilen aktivieren.

Wichtig: Jede Zeile ist ein Filter. Wenn nichts angegeben ist, wird also jedes Paket akzeptiert.

Unattended-Upgrade::Origins-Pattern {
  "o=Debian,n=jessie";                             # alle Updates
};

// Alternativ nur Sicherheitsupdates: Unattended-Upgrade::Origins-Pattern { "o=Debian,n=jessie,l=Debian-Security"; # Nur Sicherheitsupdates }; Unattended-Upgrade::Mail "root"; // Automatically reboot *WITHOUT CONFIRMATION* if // the file /var/run/reboot-required is found after the upgrade Unattended-Upgrade::Automatic-Reboot "true"; // If automatic reboot is enabled and needed, reboot at the specific // time instead of immediately // Default: "now" Unattended-Upgrade::Automatic-Reboot-Time "02:00";  Acquire::http::Dl-Limit "1024";

Verfügbare Origins-Pattern können herausgefunden werde mit:

apt-cache policy    # Vgl. Notizen in /etc/apt/apt.conf.d/50unattended-upgrades

Aktivieren der automatischen Updates

Aktivieren der automatischen Updates durch Erstellung einer Konfigdatei in /etc/apt/apt.conf.d/20auto-upgrades

Dies geht am einfachsten mit:

#dpkg-reconfigure -plow unattended-upgrades

Inhalt der Konfig-Datei:

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

E-Mails

Anpassung der /etc/apt/listchanges.conf

[apt]
frontend=pager                                     # Werte: pager|browser|text|mail|none -> Früher pager verwendet. Erstlelt unnütze E-Mails. none probieren?
email_address=root
confirm=1
save_seen=/var/lib/apt/listchanges.db
which=both                                         # Werte: news|changelogs|both -> Früher both verwendet. Erstellt unnütze E-Mails. news probieren?

Benachrichtigung einrichten

Voraussetzung ist grundsätzliche Einrichtung für Mailversand an externe Empfänger (?).

Danach /etc/apt/apt.conf.d/50unattended-upgrades bearbeiten:

Unattended-Upgrade::Mail "user1,user2";  

Mailbetreff ändern

Dies muss direkt in /usr/bin/unattended-upgrades (In Debian Link auf /usr/bin/unattended-upgrade) geändert werden.

Folgende Zeilen suchen und wunschgemäß anpassen:

    if os.path.isfile(REBOOT_REQUIRED_FILE):                                                    
        subject = _(                                                                            
            "[reboot required] unattended-upgrades result for '%s': %s") % (                    
            host(), res)                                                                        
    else:                                                                                       
        subject = _("unattended-upgrades result for '%s': '%s'") % (                            
            host(), res)

Debuggen

Testmöglichkeit für die Konfiguration

unattended-upgrades -v --dry-run    # Verbose + Dry Run
unattended-upgrades -d -v --dry-run # Debug + Verbose + Dry Run

Reboot

Wenn ein Reboot notwendig ist, und automatischer Reboot aktiviert ist, wird folgende Datei angelegt:

/var/run/reboot-required

Optional wird eine E-Mail an den Administrator gesendet mit dem Inhalt:

Shutdown scheduled for Wed 2016-07-06 02:00:00 CEST

Ausführungszeitpunkt

Die Unattended-Upgrades werden mittels Daily-Cronjobs von Cron bzw. Anacron ausgeführt.

Wenn Anacron auf einem System installiert ist, wird Anacron zum Starten der Daily-Cronjobs genutzt per /etc/cron.d/anacron.

Ist dies nicht der Fall, werden die Daily-Cronjobs von Cron gestartet per /etc/crontab mit dem Job für das Verzeichnis /etc/cron.daily

Die Skripte der Unattended-Upgrades finden sich unter: /etc/cron.daily (?)

Details siehe Cronjob (Debian)