Debian - automatisches Aktualisieren des Systems
Ich bin normalerweise kein Fan von automatischen Updates auf Servern jedoch macht es z.B. Sinn die Sicherheits Updats Nachts automatisch zu installieren. Ein komplettes System (dist-upgrade) oder Packetupdate (upgrade) ist jedoch mit Vorsicht zu genießen. Da kann es schon mal vorkommen das man morgens kommt und der Apache oder der MySQL Server Mist baut, wenn man dann nicht sofort an das automatische Update denkt sucht man sich einen Wolf Ich gehe im der folgenden Anleitung davon aus das man unter root arbeitet sollte dies nicht der Fall sein kann man bei jedem Befehl ein sudo davor setzen, dies muss natürlich installiert & konfiguriert sein.
Zuerst installieren wir cron-apt auf dem Server der automatisch aktualisiert werden soll.
Das können wir mit dieser Zeile erledigen :
z.B.
Damit die Sicherheits Updates automatisch installiert werden müssen wir eine neue Liste für apt anlegen.
Wer eine andere Version als Jessie verwendet muss das hier natürlich ändern.
Jetzt müssen wir die Zeilen die wir hier eingetragen haben aus der Datei /etc/apt/source.list auskommentieren wir möchten ja keinen Ärger mit doppelten Packetquellen haben.
Jetzt erzählen wir noch cron-apt das es diese Datei auch abarbeiten soll. Das machen wir indem wir eine neue Konfiguration für cron-apt anlegen.
Dann müssen wir noch einstellen wann das alles passieren soll. In der Default Einstellung läuft das ganze morgens um 4:00 Uhr der Syntax ist hier der gleich wie bei cron. Das kann in der Datei /etc/cron.d/cron-apt geändert werden. Da ich meine Backups früher erstelle ist für mich die Zeit ok, deswegen lass ich das auch auf Default .Zum Abschluss können wir noch testen ob das ganze Zeugs jetzt auch funktioniert das erledigen wir mit
Wenn das alles funktioniert hat kann man sich zurücklehnen und einen Kaffee besorgen, ab jetzt werden jeden Morgen um 4:00 Uhr die Sicherheitsupdates automatisch installiert und die Packete die zum Update anstehen heruntergeladen um diese später definiert zu installieren.
Zuerst installieren wir cron-apt auf dem Server der automatisch aktualisiert werden soll.
Das können wir mit dieser Zeile erledigen :
apt-get install cron-aptNach der Installation von cron-apt müssen wir dies noch konfigurieren. Dazu rufen wir die Konfigurationsdatei auf
nano /etc/cron-apt/action.d/3-downloaddort sollten wir diesen Inhalt finden :
autoclean -y dist-upgrade -d -y -o APT::Get::Show-Upgraded=trueDie Standardkonfiguration bedeutet das alle Packete die als Update verfügbar sind heruntergeladen ABER nicht installiert werden.
dist-upgrade -d -y -o APT::Get::Show-Upgraded=trueMöchte man sich gar nicht um die Updates kümmern kann man das -d aus der Zeile löschen.
z.B.
dist-upgrade -y -o APT::Get::Show-Upgraded=truedas Vorgehen sollte man aber meiner Meinung nicht machen siehe oben.
Damit die Sicherheits Updates automatisch installiert werden müssen wir eine neue Liste für apt anlegen.
nano /etc/apt/sources.list.d/00_Sicherheits_Updates.listDort fügen wir diesen Inhalt ein :
# Sicherheits Updates für Debian Jessie deb http://security.debian.org/ jessie/updates main deb-src http://security.debian.org/ jessie/updates main
Wer eine andere Version als Jessie verwendet muss das hier natürlich ändern.
Jetzt müssen wir die Zeilen die wir hier eingetragen haben aus der Datei /etc/apt/source.list auskommentieren wir möchten ja keinen Ärger mit doppelten Packetquellen haben.
nano /etc/apt/sources.listDer Inhalt sollte dann so in etwa aussehen, kommt drauf an ob eigene Quellen eingefügt wurden oder nicht.
#deb cdrom:[Debian GNU/Linux 8.2.0 _Jessie_ - Official amd64 NETINST Binary-1 20150906-11:09]/ jessie main deb http://ftp.de.debian.org/debian/ jessie main deb-src http://ftp.de.debian.org/debian/ jessie main # In die Datei /etc/apt/sources.list.d/00_Sicherheits_Updates.list ausgelagert für cron-apt # # deb http://security.debian.org/ jessie/updates main # deb-src http://security.debian.org/ jessie/updates main # jessie-updates, previously known as 'volatile' deb http://ftp.de.debian.org/debian/ jessie-updates main deb-src http://ftp.de.debian.org/debian/ jessie-updates main
Jetzt erzählen wir noch cron-apt das es diese Datei auch abarbeiten soll. Das machen wir indem wir eine neue Konfiguration für cron-apt anlegen.
nano /etc/cron-apt/action.d/5-Sicherheits-Updatesmit diesem Inhalt :
upgrade -y -o APT::Get::Show-Upgraded=truedann noch die Konfiguration dafür anlegen das auch nur Sicherheitsupdates installiert werden.
nano /etc/cron-apt/config.d/5-Sicherheits-UpdatesInhalt :
OPTIONS="-q -o Dir::Etc::SourceList=/etc/apt/sources.list.d/00_Sicherheits_Updates.list -o Dir::Etc::SourceParts=\"/dev/null\""
Dann müssen wir noch einstellen wann das alles passieren soll. In der Default Einstellung läuft das ganze morgens um 4:00 Uhr der Syntax ist hier der gleich wie bei cron. Das kann in der Datei /etc/cron.d/cron-apt geändert werden. Da ich meine Backups früher erstelle ist für mich die Zeit ok, deswegen lass ich das auch auf Default .Zum Abschluss können wir noch testen ob das ganze Zeugs jetzt auch funktioniert das erledigen wir mit
cron-apt -sdas Logfile zu cron-apt findet man unter /var/log/cron-apt/ dieses kann mit dem Befehl
cat /var/log/cron-apt/log | moreeinfach durchgeblättert werden.
Wenn das alles funktioniert hat kann man sich zurücklehnen und einen Kaffee besorgen, ab jetzt werden jeden Morgen um 4:00 Uhr die Sicherheitsupdates automatisch installiert und die Packete die zum Update anstehen heruntergeladen um diese später definiert zu installieren.