Blog

Gérer la configuration dans Drupal 8

18.04.2014
configuration drupal 8

Sommaire

En bref
  • Drupal 8 stocke les configurations (types de contenus, champs, nom du site, modules activés) dans des fichiers YAML plutôt qu’en base de données

  • Le module Configuration Manager permet d’exporter et d’importer la configuration d’un environnement à un autre en utilisant un identifiant unique (UUID) pour vérifier la cohérence

  • Les fichiers actifs sont placés dans un dossier “active” et l’import se fait depuis un dossier “staging”, avant d’être validé et appliqué en production, avec nécessité de sécuriser l’accès

Drupal 8 va arriver avec une toute nouvelle façon de gérer la configuration au sens large : les modules, les champs et même des informations comme le nom du site. Toutes ses informations, autrefois stockées en base de données dans drupal 7, seront désormais stockées dans fichier YAML (.yml) qui ne seront rien d’autre que de simples fichiers textes.

Un module incontournable fait donc son apparition dans la version 8 du CMS ; le module “Configuration Manager”. Celui-ci fournira une interface utilisateur qui permettra de réaliser notamment de l’import/export de configuration d’un environnement à un autre, en tenant compte du fait que ce soit les mêmes sites sur ces environnements. Pour assurer cette cohérence, un identifiant unique est assigné au site, le “Universally Unique Identifier” (UUID). Il permet de vérifier lors de l’import de fichiers de configuration que nous sommes bien sur le même site que celui dont on a fait l’export de la configuration. Cet identifiant unique se trouve dans le fichier system.site.yml.
Lors d’un import, drupal vérifiera que les identifiants correspondent bien, et sont donc les mêmes, afin d’autoriser cet import.

On s’aperçoit donc que les modules comme “Features” ou “Strongarm” deviennent alors inutiles puisque ce nouveau système de configuration permet de remplir les fonctionnalités de ces derniers.

Les fichiers de configurations actuellement actifs peuvent être trouvés dans le répertoire “sites/default/files/config_XXXX/active” où “XXXX“ représente un hash comme par exemple “OBS62oxf-5DyUHkiVE7yuiok_OLuIaHY9qcfTpOlkJU” ce qui nous donnerait donc un répertoire ressemblant à : “sites/default/files/config_OBS62oxf-5DyUHkiVE7yuiok_OLuIaHY9qcfTpOlkJU/active”

On remarquera qu’un répertoire “staging” se trouve au même niveau que celui “active”. Celui-ci sert uniquement lors de l’import de fichiers de configuration, et reste vide le reste du temps.

Les fichiers de configuration Drupal sont cachés grâce au hash présent dans le nom du répertoire. De plus, un fichier .htaccess avec la directive “Deny from all” permet d’assurer une sécurité supplémentaire en rendant ces fichiers inaccessibles.

Toutes les opérations d’import ou d’export se font en back office en se rendant dans Manage > Configuration > Development > Configuration management soit à l’adresse suivante “admin/config/development/configuration” .

Il est alors possible d’exporter un seul fichier, ou de faire un export complet de tous les fichiers de configuration.

Si l’on part du principe que nous avons deux sites (dev et prod) identiques, tout changement fait sur le site de dev sera stocké dans le répertoire “active”. Il suffit alors d’importer ces fichiers sur le site de prod et de faire une synchronisation pour prendre en compte les changements. Une page de vérification des changements apparaît alors, permettant de s’assurer que les modifications apportées à la configuration du site soit cohérentes.

Une fois validée, les fichiers se trouvant dans le répertoire “staging” sont élevés dans le répertoire “active”, les nouveaux modules sont alors activés, les nouveaux champs, les types de contenu, etc.. sont ajoutés. Les changements sont alors effectifs sur l’environnement de prod.

 

Un besoin sur Drupal ? Contactez Akabia, l'agence Drupal

Un projet ? Parlons-en

En tant qu'agence web experte Drupal, nous sommes à votre écoute pour étudier vos besoins
et vous proposer les meilleures solutions.

Autres articles

Drupal est réputé pour sa robustesse et sa sécurité. Cependant, dans le paysage numérique actuel, la sécurité d'un CMS ne dépend pas uniquement de son noyau. Le trafic, les modules contribués et les nouvelles techniques d'attaque créent des menaces constantes. Pour les chefs de projet, les DevOps et les hébergeurs, garantir l'intégrité, la disponibilité et la performance d'un site Drupal est une priorité absolue. C'est ici qu'intervient le pare-feu applicatif web, ou WAF (Web Application Firewall). Loin d'être un gadget technique, c'est une composante stratégique de tout hébergement moderne.

L'intégration de frameworks frontaux comme Angular avec des systèmes de gestion de contenu (CMS) est devenue une pratique courante dans le développement web. Ce guide vise à accompagner les développeurs dans le processus d'intégration d'Angular avec Drupal, en exploitant les avantages de ces deux technologies.