logo

Extra Block Types (EBT) - Neue Erfahrung im Layout Builder❗

Extra Block Types (EBT) - gestylte, anpassbare Blocktypen: Diashows, Registerkarten, Karten, Akkordeons und viele andere. Eingebaute Einstellungen für Hintergrund, DOM Box, Javascript Plugins. Erleben Sie die Zukunft der Layouterstellung schon heute.

Demo EBT-Module EBT-Module herunterladen

❗Extra Absatztypen (EPT) - Erfahrung mit neuen Absätzen

Extra Paragraph Types (EPT) - analoger, auf Absätzen basierender Satz von Modulen.

Demo EPT-Module EPT-Module herunterladen

Scroll
21/06/2025, by Ivan

Die Aktualisierung einer Drupal-Website ist komplex, arbeitsintensiv und kostenintensiv. Es ist ein schwieriges Problem, das auf den ersten Blick einfach erscheint, da es sichere und zuverlässige Updates gewährleisten soll, die Website-Besitzern Vertrauen geben und die Verfügbarkeit der Website für Besucher sicherstellen.

Der automatische Update-Dienst für Drupal soll diesen Prozess vereinfachen und sicherstellen, dass Updates korrekt angewendet werden.

Beachten Sie, dass automatische Updates eine strategische Initiative für das Drupal-Projekt sind. Die Initiative befindet sich noch in der Umsetzung, daher gibt es einige wichtige Punkte zu beachten:

  • Das automatische Update-Modul ist noch nicht Teil des Core. Es ist in seiner ursprünglichen Form als Contrib-Modul unter https://drupal.org/project/automatic_updates verfügbar.
  • Das Modul ist derzeit ein Release Candidate. Ein stabiler Release wird in Kürze erwartet.
  • In dieser ersten Phase umfasst das automatische Update-Modul Benachrichtigungsfunktionen für PSA (Public Security Announcements) und Readiness-Prüfungen und kann Updates manuell oder per Cron als In-Place-Updates anwenden. Updates, die Datenbank-Updates enthalten, führen zum Rollback des Updates.
  • Das Modul unterstützt derzeit keine Contrib-Updates oder Composer-basierte Installationen. Diese sind für Phase 2 geplant.

Hauptmerkmale des automatischen Update-Moduls

PSA (Public Security Announcements)

PSA-Ankündigungen für kritische Sicherheitsupdates von Core- und Contrib-Modulen werden nicht häufig gemacht. Sobald eine PSA veröffentlicht wird, müssen Website-Besitzer ihre Websites überprüfen, um sicherzustellen, dass sie über die neuesten Releases informiert sind und die Website bereit ist, schnell zu aktualisieren, sobald die Patches der Community zur Verfügung gestellt werden.

Readiness-Prüfungen

Nicht alle Websites sind jederzeit updatebereit. Die Readiness-Prüfung ist eine automatische Methode, um zu bestimmen, ob eine Website bereit für ein automatisches Update ist, nachdem ein neues Release der Community bereitgestellt wurde. Beispielsweise können Websites mit ausstehenden Datenbank-Updates, nur-lesbaren Dateisystemen oder unzureichendem Speicherplatz für In-Place-Updates keine automatischen Updates empfangen. Wenn Ihre Website die Readiness-Prüfung nicht besteht und eine PSA veröffentlicht wurde, ist es wichtig, die grundlegenden Probleme zu beheben, damit die Website schnell aktualisiert werden kann.

In-Place-Updates

Sobald der PSA-Dienst den Drupal-Website-Besitzer über ein verfügbares Update informiert hat und die Readiness-Prüfungen bestätigen, dass die Website zum Update bereit ist, kann der automatische Update-Dienst das Update anwenden.

Eine bestimmte Website (oder Agentur bzw. Hosting-Anbieter) kann entscheiden, zusätzliche DB-Verarbeitungsoptionen anzubieten, z. B. einen Datenbank-Dump erstellen und auf S3 auslagern oder E-Mail-/Benachrichtigungen versenden, bevor die Datenbank-Updates ausgeführt werden.

Wenn Sie eigene benutzerdefinierte Aktionen entwickeln, beachten Sie, dass alle Aktionen, für die Code benötigt wird, der sich während des Updates geändert haben könnte, mit dedizierten CLI-Befehlen ausgeführt werden müssen. Andernfalls würde die Ausführung eine alte Code-Version aufrufen – eine eingebaute PHP-Beschränkung. Beispiele hierfür finden Sie im Plugin execute_updates, das Symfony-Konsolenbefehle aufruft.

Installation

Das Drupal Automatic Updates Modul ist derzeit als Contrib-Modul auf Drupal.org verfügbar. Nach einer späteren Iteration und umfangreichen Community-Tests wird es in den Drupal-Core integriert. Zu diesem Zeitpunkt müssen Sie lediglich auf die Drupal-Version aktualisieren, die diese Funktion enthält.

Um die Contrib-Version des Automatic Updates Moduls zu installieren, folgen Sie denselben Anweisungen wie für viele andere Module auf Drupal.org:

  1. Wichtig: Laden Sie das Modul als Tarball herunter. Die Installation über Composer wird derzeit nicht unterstützt.
  2. Installieren Sie das Modul anschließend auf dem bevorzugten Weg.

 

Die Nutzung dieses Moduls ist derzeit nicht für Composer-basierte Websites vorgesehen. Es wird davon ausgegangen, dass die Website aus Archivdateien installiert und verwaltet wird. Außerdem unterstützt es bewusst nur Updates für Drupal Core. Zukünftige Modulversionen werden Composer-basierte Drupal-Installationen umfassender unterstützen.

Modulnutzung

Besuchergesteuerte Nutzung

Die PSA-Funktion zeigt PSA-Informationen von Drupal.org direkt im Drupal-Administratorinterface an, um Benutzer über bevorstehende Releases zu informieren.

Die Readiness-Prüfung wird regelmäßig ausgeführt, um sicherzustellen, dass keine Probleme das Update verhindern.

Auf der Modul-Konfigurationsseite kann der Benutzer ein In-Place-Update manuell starten.

Unbeaufsichtigte Nutzung

Um automatische Updates zu aktivieren, setzen Sie einfach ein Häkchen auf der Modul-Konfigurationsseite, um Updates über Cron auszuführen. Updates werden nur angewendet, wenn die Website die Readiness-Prüfung besteht.

Erweiterung der automatischen Updates

Datenbank-Updates können komplex sein, und Website-Besitzer haben unterschiedliche Anforderungen an die Verarbeitung solcher Updates. In Drupal 8 verwendet das automatische Update-Modul eine Plugin-Architektur zur Verarbeitung von Datenbank-Updates, um das System erweiterbar zu machen.

Standardmäßig wird die Website in den Wartungsmodus versetzt, die DB-Updates ausgeführt und die Website danach aus dem Wartungsmodus genommen. Es gibt derzeit keine UI, um dies zu ändern. Die Reihenfolge und Abfolge der DB-Update-Verarbeitung wird über die config in automatic_updates.settings.yml gesteuert. Sie kann auch über settings.php mit $config['automatic_updates.settings']['database_update_handling'] = ['rollback', 'alternative_plugin_id', 'yet_another_plugin'] überschrieben werden. Dies ist ein Array von Plugin-IDs.

Die verfügbaren Plugins, die im Modul enthalten sind:

  • 'execute_updates'
  • 'ignore_updates'
  • 'maintenance_mode_activate'
  • 'maintenance_mode_disactivate'
  • 'rollback'

Als Website-Besitzer oder Dienstleister können Sie eigene Plugins erstellen, um diese Funktionalität weiter zu erweitern, z. B. ein benutzerdefiniertes Plugin für Datenbanksicherungen.

Architektur des automatischen Update-Systems

Hauptmerkmale

PSA (Public Security Announcements)

PSA-Ankündigungen werden über den von Drupal.org bereitgestellten PSA.json-Kanal eingelesen und mit drupal_set_message() im Backend angezeigt.

Readiness-Prüfung

Readiness-Prüfungen sind ein erweiterbares System, das verschiedene Prüfungen ermöglicht und Warnungen oder Fehler im Drupal-Administratorinterface anzeigt.

In-Place-Updates

In-Place-Updates verwenden gehashte und signierte „Quasi-Patches“, die von Drupal.org erzeugt werden. Diese Quasi-Patches werden mit der php-libsodium-Bibliothek geprüft, die ab PHP 5.3 verfügbar und portiert ist.

Nach der Prüfung werden die Quasi-Patches mittels PHP-Copy-Funktion angewandt – alle im Update geänderten Dateien werden einfach überschrieben.

Testfunktionalität

In der aktuellen Version des Automatic Updates Moduls kann der Benutzer einen Test-JSON-Kanal von Drupal.org aktivieren, um zu sehen, wie PSA-Informationen angezeigt werden.

So geht’s:

1. Aktivieren Sie das Modul automatic_updates_test über die Drupal-Moduladministration oder mit folgendem Befehl:

$ drush pm-enable automatic_updates_test

2. Setzen Sie die Variable, um den Test-Kanal zu aktivieren, mit:

$ drush vset automatic_updates_psa_endpoint http://localhost/automatic_updates/test-json

Wenn Sie einen eigenen Testkanal erstellen, können Sie dessen URL mit diesem Befehl ersetzen.

Um wieder den offiziellen PSA-Kanal von Drupal.org zu nutzen:

1. Führen Sie den Befehl aus:

$ drush vset automatic_updates_psa_endpoint https://updates.drupal.org/psa.json

2. Deaktivieren Sie das Modul automatic_updates_test über das Drupal-Modulinterface oder mit:

$ drush pm-disable automatic_updates_test

 

Drupal.org Infrastruktur

Automatische Updates für Drupal werden von der Infrastruktur von Drupal.org unterstützt und von der Drupal Association finanziert.

PSA-Veröffentlichungen

Drupal.org stellt einen JSON-Feed mit Drupal Public Security Announcements für das Automatic Updates Modul bereit.

Die kanonische URL dieses Feeds lautet: https://updates.drupal.org/psa.json. Einen Testfeed finden Sie unter https://updates.drupal.org/psa-this-is-only-a-test.json, der für Funktionstests verwendet wird.

Der Feed enthält eine Liste aktuell aktiver PSAs mit folgenden Details:

  • title: Titel der PSA.
  • link: URL der vollständigen PSA auf Drupal.org.
  • project: Kurzname des Projekts, für das die PSA gilt.
  • type: Projekttyp, z. B. Core, Modul, Theme, Distribution usw.
  • is_psa: Kennzeichnung, dass es sich um eine PSA und nicht eine andere Art von Sicherheitsempfehlung handelt.
  • insecure: Liste der unsicheren Projektversionen. Diese Liste wird nach Veröffentlichung eines Sicherheitsupdates aktualisiert.
  • pubDate: Veröffentlichungsdatum der PSA.

 

Beispielsweise würde bei Einbindung der PSAs Drupal 7 und 8 Release vom 8. Mai 2019 – PSA-2019-05-07 und Verschiedene Drittanbieter-Sicherheitslücken – PSA-2019-09-04 der Feed folgendermaßen aussehen:

[
   {
      "title" : "Drupal 7 and 8 release on May 8th, 2019 - PSA-2019-05-07",
      "insecure" : [
         "4.7.0-beta3",
         …
         "8.7.0-rc1",
         "8.7.0",
         "8.7.4"
      ],
      "link" : "https://www.drupal.org/psa-2019-05-07",
      "pubDate" : "2019-09-20T22:09:16+00:00",
      "project" : "drupal",
      "type" : "core",
      "is_psa" : "1"
   },
   {
      "project" : "securitydrupalorg",
      "pubDate" : "2019-09-12T21:35:55+00:00",
      "is_psa" : "1",
      "type" : "module",
      "insecure" : [],
      "title" : "Various 3rd Party Vulnerabilities - PSA-2019-09-04",
      "link" : "https://www.drupal.org/psa-2019-09-04"
   }
]

Dieser Feed wird vom Automatic Updates Modul analysiert und im Drupal-Admin-Interface dargestellt. Auch andere Module oder Dienste können diesen Feed verwenden und anzeigen.

Package-Generierung

Das Packaging-System von Drupal.org erstellt die .tar.gz- und .zip-Downloads für Projekte auf Drupal.org. Gleichzeitig aktualisiert es auch das Composer-Frontend und generiert mit dem automatischen Update-System „Quasi-Patches“, die für die Aktualisierung der Website mit dem Modul automatic_update verwendet werden.

Signierung der Pakete und Sicherheit

Um die Sicherheit und Prüfbarkeit der „Quasi-Patch“-Pakete zu gewährleisten, verwendet Drupal.org eine Hashing- und Signatur-Architektur, die auf dem BSD Signify-Projekt basiert (BSD Signify).

Drupal-Mitwirkende haben eine PHP-Implementierung von Signify erstellt, die im Drupal-GitHub-Namespace verfügbar ist: https://github.com/drupal/php-signify.

Diese Bibliothek erzeugt SHA-Hashes von Dateien, die in den Hashcode eines Projekts eingeschlossen sind, und signiert diese mit einem öffentlichen/privaten Schlüsselpaar, das aus einem HSM in der Drupal.org-Infrastruktur generiert wurde.

Feedback geben

Um Feedback zur ersten Generation des automatischen Update-Moduls zu geben, erstellen Sie bitte ein Issue im Automatic Updates Issue Queue.

Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.