Maîtriser la synchronisation de configuration dans Drupal 10
Introduction
Le système de gestion de configuration de Drupal, introduit dans Drupal 8 et affiné dans Drupal 10, permet aux développeurs de gérer les configurations de sites de manière standardisée et prévisible. Que vous travailliez en équipe ou que vous gériez plusieurs environnements (comme le développement, la préparation et la production), la synchronisation des configurations garantit la cohérence et la fiabilité dans toutes les configurations. Ce blog vous guidera tout au long du processus de synchronisation de configuration dans Drupal 10, couvrant les modules, commandes et meilleures pratiques nécessaires.
Qu’est-ce que la synchronisation de configuration Drupal ?
La synchronisation de configuration Drupal est le processus de gestion et de synchronisation de la configuration du site entre différents environnements (par exemple, développement, préparation, production). La configuration dans Drupal fait référence aux paramètres qui déterminent le comportement d’un site, notamment les types de contenu, les vues, les champs et les autorisations des utilisateurs. Contrairement au contenu, qui change fréquemment et est stocké dans la base de données, la configuration est plus stable et est généralement gérée sous forme de code.
La synchronisation de la configuration garantit que les paramètres et la configuration dans plusieurs environnements sont cohérents, permettant un comportement prévisible et réduisant les risques de dérive de configuration, où différents environnements peuvent avoir des paramètres différents en raison de modifications manuelles ou d’une surveillance.
Pourquoi avons-nous besoin d’une synchronisation de configuration ?
La synchronisation de la configuration est essentielle pour plusieurs raisons :
- Cohérence entre les environnements : elle garantit que tous les environnements (développement, transfert, production) sont identiques en termes de configuration, ce qui est crucial pour tester et déployer les mises à jour.
- Contrôle de version : en exportant la configuration dans le code, elle peut être versionnée à l’aide de Git ou d’un autre système de contrôle de version, permettant aux équipes de suivre les modifications, de revenir aux versions précédentes et de collaborer plus efficacement.
- Reprise après sinistre : en cas de suppression accidentelle ou de mauvaise configuration, vous pouvez rapidement restaurer le site à un état antérieur à l’aide de la configuration stockée dans le code.
- Déploiement : lors du déploiement de modifications d’un environnement de développement vers la production, la synchronisation de la configuration facilite l’application de ces modifications sans intervention manuelle, réduisant ainsi le risque d’erreurs.
- Développement rapide : la synchronisation des configurations permet la réutilisation des configurations dans différents environnements et réduit les coûts de développement.
Comprendre la configuration Drupal
Dans Drupal 10, les données de configuration sont stockées dans des fichiers YAML. Ces fichiers contiennent des paramètres pour les types de contenu, les vues, les vocabulaires de taxonomie, etc. La configuration est stockée dans le répertoire config du répertoire de fichiers du site, généralement situé dans sites/default/files/config_HASH/sync, où HASH est un identifiant unique généré par Drupal.
Lorsque vous exportez la configuration de votre site, Drupal écrit ces paramètres dans des fichiers YAML qui peuvent être stockés dans un système de contrôle de version. A l’inverse, l’importation de configuration lit ces fichiers et applique les paramètres au site.
Quelles données seront considérées comme configuration ?
Dans Drupal, le API d’état est utilisé pour stocker des informations temporaires ou internes au site qui ne font pas partie de la configuration principale du site. Ces données ne sont pas destinées à être synchronisées dans différents environnements comme le développement ou la production. Au lieu de cela, il est utilisé pour des éléments spécifiques à un environnement ou à une session particulière.
Données d’état et données de configuration :
- Données de configuration : Il s’agit de paramètres qui définissent le fonctionnement de votre site, comme les types de contenu, les vues et les autorisations des utilisateurs. Ces données sont stockées dans des fichiers YAML et synchronisées sur tous vos environnements.
- Données d’état : Il s’agit plutôt d’informations temporaires ou spécifiques à l’environnement. Il est enregistré dans la base de données et n’est pas synchronisé entre les environnements.
Exemples de données de configuration :
- Types de contenu : Définitions de différents types de contenu comme des articles ou des événements.
- Vues : Configurations pour les vues personnalisées, telles que les listes de contenu ou les profils utilisateur.
- Vocabulaires de taxonomie : Définitions des termes et catégories utilisés pour le balisage du contenu.
- Rôles et autorisations des utilisateurs : Paramètres qui contrôlent l’accès et les autorisations des utilisateurs sur le site.
- Structures des menus : Configuration du menu de navigation principal et des sous-menus.
Exemples de données d’état :
- Dernière exécution de Cron : Enregistre la date à laquelle la dernière tâche automatisée (tâche cron) a été effectuée.
- Paramètres des modules : Paramètres temporaires utilisés par les modules, tels que les bascules de fonctionnalités ou les préférences utilisateur.
- Statut de connexion de l’utilisateur : Informations relatives aux sessions utilisateur actives ou aux statuts de connexion.
- Données en cache : Données stockées temporairement pour améliorer les performances du site, comme les vues ou les pages mises en cache.
- Chemins de fichiers temporaires : Chemins d’accès aux fichiers utilisés temporairement lors des opérations, comme les tâches d’importation/exportation.
Système de gestion de configuration dans Drupal
Le système de gestion de configuration (CMS) de Drupal s’articule autour du concept de configuration active et de configuration par étapes.
Configuration active : C’est la configuration que le site utilise actuellement. Il est stocké dans la base de données et est automatiquement mis à jour lorsque vous apportez des modifications via l’interface utilisateur Drupal.
Configuration par étapes : Il s’agit d’une configuration qui a été exportée vers des fichiers YAML et qui est prête à être réimportée dans le site. La configuration intermédiaire est généralement stockée dans le répertoire de synchronisation.
Les emplacements des fichiers de configuration sont mappés dans le fichier settings.php. Il est recommandé de retirer les fichiers de configuration du répertoire racine.
$settings['config_sync_directory'] = '../config/sync';
Flux de travail de configuration
Le flux de travail typique de gestion de la configuration dans Drupal comprend trois étapes principales : l’exportation, la gestion des versions et l’importation.
Exporter la configuration : Exportez la configuration actuelle du site vers des fichiers YAML.
Configuration des versions : Ajoutez les fichiers exportés au contrôle de version (par exemple, Git) et transférez les modifications vers un référentiel distant.
Configuration d’importation : Importez la configuration sur un autre environnement (par exemple, environnement intermédiaire ou production) pour appliquer les modifications.
Exportation de configurations
L’exportation de la configuration est la première étape du flux de travail de gestion de la configuration. Ce processus écrit la configuration active dans les fichiers YAML dans le répertoire de synchronisation.
Exportation de la configuration
- Accédez à l’interface d’administration du site : Configuration > Développement > Synchronisation des configurations.
- Cliquez sur le Exporter languette.
- Vous pouvez exporter la configuration entière ou des parties spécifiques de celle-ci.
- Cliquez sur Exporter pour télécharger le fichier tar.gz contenant tous les fichiers de configuration YAML.
Alternatively, you can use Drush, a command-line shell and scripting interface for Drupal, to export configuration: drush config-export OR drush cex
Cette commande exporte l’intégralité de la configuration vers le répertoire de synchronisation.
Importation de configurations
Après avoir exporté et versionné la configuration, vous souhaiterez l’importer dans un autre environnement. Ce processus lit les fichiers YAML du répertoire de synchronisation et met à jour la configuration active dans la base de données.
Importation de configuration
- Accédez à l’interface d’administration du site : Configuration > Développement > Synchronisation des configurations.
- Cliquez sur le Importer languette.
- Vous pouvez choisir d’importer la configuration entière ou des parties spécifiques.
- Si vous importez un ensemble complet de configurations, assurez-vous que les fichiers YAML appropriés sont préparés.
- Téléchargez le fichier tar.gz contenant les fichiers de configuration YAML. Ce fichier est généralement le résultat d’un export de configuration depuis un autre environnement.
Alternatively, you can use Drush, a command-line shell and scripting interface for Drupal, to import configuration: drush config-import OR drush cim
Cette commande importe la configuration du répertoire de synchronisation et l’applique à la configuration active.
Partage de configuration
Config Split est un module contribué dans Drupal qui permet la gestion de différentes configurations dans différents environnements. Il est particulièrement utile pour gérer des configurations qui doivent varier selon les environnements (par exemple, développement, transfert et production).
you can install config split module using command line - composer require drupal/config_split drush en config_split
Exemple de cas d’utilisation :
Supposons que nous ayons un site Drupal qui nécessite des paramètres de messagerie différents dans les environnements de développement et de production. L’objectif est de garantir que les fonctionnalités de messagerie sont configurées de manière appropriée pour les tests et l’utilisation en direct.
À l’aide de Config Split, vous pouvez créer différentes répartitions de configuration pour vos environnements :
Répartition du développement : Créez une répartition de configuration pour le développement avec des paramètres pour une adresse e-mail de test.
Répartition de la production : Créez une répartition de configuration pour la production avec des paramètres pour les adresses e-mail réelles.
Comment ça marche :
- Vous définissez plusieurs fractionnements de configuration dans les paramètres Config Split.
- Chaque division spécifie quels paramètres de configuration doivent être inclus ou exclus.
- Pendant le processus d’exportation et d’importation, Drupal utilise ces divisions pour gérer de manière transparente les configurations spécifiques à l’environnement.
Comment séparer la configuration entre les environnements non-prod et prod ?
Pour gérer et séparer efficacement la configuration entre les environnements de non-production (par exemple, local, dev, qa, prod) et les environnements de production, suivez ces pratiques :
1. Accédez à l’interface d’administration du site : Configuration > Développement > Paramètres de partage de configuration.
2. Cliquez sur Ajouter des paramètres de partage de configuration.
3. Entrez l’étiquette et le nom du dossier, sélectionnez les modules que vous souhaitez diviser et cliquez sur Enregistrer.
Utilisez différents répertoires de configuration :
Configurez Drupal pour utiliser différents répertoires de synchronisation pour différents environnements. Par exemple, dans votre fichier settings.php, vous pouvez spécifier différents répertoires pour les environnements de non-production et de production :
// Configure the Config Split module for different environments $config['config_split.config_split.local_split']['status'] = FALSE; $config['config_split.config_split.dev_split']['status'] = TRUE; $config['config_split.config_split.qa_split']['status'] = FALSE; $config['config_split.config_split.prod_split']['status'] = FALSE;
Note: Vous devez ajuster le statut vrai/faux des divisions de configuration en fonction de votre environnement actuel. Par exemple, si vous êtes dans l’environnement de développement, vous activerez dev_split et désactiverez les autres.
Assurez-vous que votre structure de répertoires pour la configuration est correctement configurée pour correspondre au chemin config_sync_directory spécifié dans le fichier settings.php :
Conclusion
Le système de synchronisation de configuration de Drupal 10 est un outil puissant qui garantit la cohérence entre différents environnements, simplifie le déploiement et améliore la collaboration grâce au contrôle de version. En comprenant et en utilisant correctement les processus d’exportation et d’importation, vous pouvez maintenir un site Drupal stable et prévisible dans les environnements de développement, de préparation et de production. Avec cette approche, vous disposerez d’un flux de travail robuste qui minimise le risque de dérive de configuration et maintient votre Configuration du site Drupal sous contrôle.
Source link