Drupal
25/03/2024

Usine à sites : Installons Aegir pour Drupal 10 !

Photo des locaux de l'agence bluedrop.fr

Publication collaborative entre l'agence bluedrop.fr et Evolix.
Après avoir rappelé le fonctionnement, l'histoire de Aegir, nous sommes heureux de vous proposer un moyen de faire fonctionner Aegir 3 avec Drupal 10 et php8. Ces travaux vont permettre à nos plateformes Aegir de fonctionner encore jusqu'en 2026.

Aegir, console d'administration d'usines à sites avec Drupal

La chose parait folle mais est rendue possible grâce à l'architecture de Drupal. Drupal peut gérer, administrer, monitorer d'autres sites Drupal. Le CMS laisse même le choix entre une architecture avec une ou plusieurs bases de données. Rapidement la communauté a même envisagé de permettre aux administrateurs des sites Drupal la possibilité de gérer, créer, supprimer ou cloner des sites sans compétences techniques.

La solution se présente sous la forme d'un site Drupal 7, qui permet de configurer une ou plusieurs distributions Drupal, ou un profils d'installation. Elle permet d'administrer cette usine à sites avec un Core unique de Drupal, ce qui facilite la maintenance de la plateforme. Elle met à disposition de l'administrateur un ensemble de tâches pour gérer son usine à sites et de commandes Drush spécifiques à l'environnement Drupal. Citons par exemple les tâches suivantes : 

  • Créer, dupliquer, supprimer un site ;
  • Lire le nom de la base de données ;
  • Sauvegarder un site ;
  • Réinitialiser le mot de passe d'un ou de plusieurs sites ;
  • Vider les caches Drupal d'un ou plusieurs sites ;
  • Ajouter un alias à un site ;
  • Configurer le certificat SSL d'un site ;
  • Gérer les redirections ;
  • etc !

Aegir offre en outre à un développeur Drupal une occasion d'extension des fonctionnalités, parce qu'au fond, Aegir n'est que Drupal.

Histoire de 16 ans de service !

Le premier commit Aegir a lieu le 7 décembre 2007 : https://git.drupalcode.org/project/provision/-/commit/2841de35a376e9438cc8a8c496e1720020b63a4f

Le projet devient rapidement populaire et adopté dans des secteurs très variés, bien que souvent adapté au fonctionnement des universités, des instituts de recherche, des associations disposant de "tête de réseau" et de certains groupes internationaux.

En ce qui nous concerne, nous découvrons Aegir 4 ans plus tard, en septembre 2011, par l'intermédiaire de Christian Varoujan Artin, notre regretté ami, curieux et technophile qui nous en a fait la démo dans nos locaux des allées Gambetta. Dès 2012, nous nous plaisons à exploiter une plateforme Aegir.

Correctement maintenu jusqu'en 2018, il a peu à peu cédé sous la pression de solutions propriétaires. Aujourd'hui : 

  • Le module Drupal central "provision" n'est plus maintenu depuis 2020.
  • La procédure d'installation pour Debian ne fonctionne plus : les clés GPG du dépôt APT Aegir a expiré en 2022.
  • Et http://debian.aegirproject.org/ ne fonctionne même plus.

La future finitude d'Aegir

Malheureusement, Aegir Project est en train de mourir. Nous proposons de gagner du temps, mais son sort est scellé. Les principaux mainteneurs abandonnent la plateforme dans sa forme actuelle pour redévelopper Aegir 5 en prenant une autre direction. La feuille de route est encore floue et nous ne suivrons probablement pas cette direction.

Une autre initiative, maintenue par Omega8, permet de faire fonctionner Drupal 9.5 et Drupal 10. Il s'agit de BOA (Barracudo Octopus Aegir). Nous avons testé cette solution qui parait très spécifique et difficile, pour nous, à exploiter. Nous remercions cependant l'équipe de BOA pour la mise à disposition de certains patches qui nous ont permis d'avancer plus vite dans nos travaux.

Il semble que la fin soit annoncée :(

Notre projet de fork Aegir

Si nos travaux proposent une solution pour allonger la durée de vie de Aegir, nous travaillons d'ores et déjà sur une plateforme équivalente, refaite de zéro, embarquant les principales fonctionnalités de Aegir. En collaboration avec Evolix, nous nous fixons comme objectif de proposer une publication pour le dernier trimestre 2024. Ce fork ressemblera par moment à Aegir, diminué des fonctionnalités lourdes et peu utiles. Il embarquera certaines commandes Drush. Nous ne manquerons pas de vous faire part de l'avancée de nos travaux.

Et en attendant, installons Aegir pour Drupal 10 !

Voici l'environnement nécessaire :

L'installation fonctionne sur un serveur unique et en multi-clusters.
Tous les détails de l'installation sont sur https://wiki.evolix.org/HowtoAegir.

A noter : 

Parmi les patches sur le code de Drupal 10, il faut :

  • Supprimer Drush 12 dans les sources
  • Patcher vendor/psr/log/src/LoggerTrait.php
  • Patcher core/lib/Drupal/Core/Logger/LoggerChannel.php
  • Patcher core/lib/Drupal/Core/Logger/RfcLoggerTrait.php
  • Patcher core/modules/dblog/src/Logger/DbLog.php
  • Patcher vendor/psr/log/src/LoggerInterface.php
  • Plusieurs patches, notamment sur le module Drupal "provision" viennent de https://omega8.cc/ et de BOA, merci également à eux.

Et maintenant... A vous de jouer !

 


 

Quelques ressources :