Vous êtes ici

maintenance d'un ensemble de sites d'une usine

Vous avez 30 secondes ?
S'abonner au flux d'actualités
6 contributions / 0 nouveau(x)
Dernière contribution
maintenance d'un ensemble de sites d'une usine
Bonjour,
je suis nouveau sur le forum. Donc je me présente: je suis mi-temps Professeur d'informatique, mi-temos chargé des architectures Web à CentraleSupelec.
J'ai développé une Fabrique à sites, basée sur un thème réalisé par une agence, qui permet de présenter un back-office très simple aux auteurs.
J'ai pour l'instant 2 instances en production, et 8 livrées dans lesquelles les auteurs et responsables installent leur contenu.
Régulièrement, des auteurs, ou les futurs auteurs que je forme me demandent des fonctionnalités nouvelles. Donc des modules que je vais ajouter au Drupal 8 dont le code est partagé entre toutes les instances.
Ma question est la suivante: quand j'installe un nouveau module ou type de contenu, je dois repasser les modifs sur toutes les instances déjà créées. C'est fastidieux et sujet à erreur.
Existe-t-il un moyen (via un module et le back-office admin, ou drush, ou autre) d'exporter seulement les fonctionnalités et types de contenus qui sont nouveaux, puis les importer dans les instances déjà créées ?
J'ai regardé le module "config-partial-export", mais la liste qu'il propose est quelquefois très longue, et pas très explicite.
Bien entendu, les modifications que je veux "propager" ne suppriment pas de modules ni de type de contenu déjà instanciés dans les anciennes instances.
Merci pour vos conseils
This post is useful!
This post is useless!
Re: maintenance d'un ensemble de sites d'une usine
Bonjour hdlbq,
 
Question pas simple en effet !
Drupal 8 introduit un nouveau système de configuration (dit CMI). Il vous permet d'exporter l'intégralité des configurations de votre site (configuration, pas contenu) sous forme de fichier de configuration que vous pouvez exporter/importer dans un site Drupal. 
L'export se fait via "drush cex". L'import par "drush cim".
 
Donc,
- vous pourriez essayer d'exporter votre config du premier site et discrimer ce qui vous intéresse dans un commit. Ensuite faire un cherry-pick de ce commit dans votre autre site et réimporter. => fastidieux je pense
- vous pourriez choisir un dossier en commun pour l'export / import de tous vos sites. Ceux-ci deviendraient alors des clones les uns des autres.
- maintenant supposons que certaines configs ne devraient pas être partagées (par exemple le nom du site, les modules activés, etc..). Il vous faurait "séparer" l'export de la configuration entre des dossiers spécifiques et un dossier commun pour le "socle" de votre site. Le module "Configuration Split" (https://www.drupal.org/project/config_split) peut vous aider dans ce cas. Une fois bien configurer (séparé les configs communes des configs spécifiques), un drush cex d'un côté, suivi de drush cim de l'autre devrait vous permettre de faire ce que vous voulez.
 
Il reste également la technique "drupal 7": utiliser le module Feature (https://www.drupal.org/project/features). Personnellement je ne suis pas fan de ce module, mais c'est un classique.
 
Oh: une petite recherche Google avec 'drupal 8 config split' m'a pointé vers cet article qui je pense peut vous donner d'autres éléments intéressants:
 
Tenez moi au courant si vous trouver une solution simple et viable: ça m'intéresse bien aussi !!
This post is useful!
This post is useless!
Re: maintenance d'un ensemble de sites d'une usine
bonjour,
merci pour toutes vos contributions, et votre réponse.
Je vais regarder les pages que vous m'indiquez, et je reviens vers le forum.
Si je trouve une solution assez simple, je fais un petit tutorial.
Cordialement
This post is useful!
This post is useless!
Re: maintenance d'un ensemble de sites d'une usine
je me pose une petite question concernant les export et import de configuration.
J'ai deux instances sur une machine de test, identiques par leur configuration (même modules activés, même types de contenu). Comme vous le soulignez, des informations les différencient: nom du site, référence vers la home page, et bien sûr contenus.
Sur des cas simples (duplication de l'instance de référence, puis création d'un nouveau type de contenu côté référence, et d'un contenu côté copie), un full export de la référence est importable dans la copie. La copie récupère le nouveau type de contenu et conserve ses contenus.
Malheureusement la copie d'une  instance opérationnelle est plus riche, et je tombe sur ces messages (entre autres):
  • Entities exist of type Content and Content type fragment_video. These entities need to be deleted before importing.
  • Entities exist of type File and Image. These entities need to be deleted before importing.
  • Entities exist of type Crop and Crop type Free crop. These entities need to be deleted before importing.
J'insiste sur le fait que la copie ne possède pas moins de type de contenu que la référence. Des modules désactivés oui, par contre. C'est une demande d'utilisateur qui arrive. Mais si je comprends bien le message, il s'agirait de contenu qu'il faudrait supprimer ?
Merci
 
 
This post is useful!
This post is useless!
Re: maintenance d'un ensemble de sites d'une usine
Supposons que votre site "copie" est des types de contenus existants, que l'on nommera ensemble A et des types de contenus nécessitant modification depuis l'instance d'origine que l'on nommera ensemble B.
 
Je pense que vous avez dû exporter les fichiers yml correspondant aux changements de l'ensemble B dans le dossier de synchro du site de copie et surement enlever les fichiers yml correspondant à l'ensemble A, en pensant n'importer ainsi que l'ensemble B.
En fait pour Drupal, sans module d'import partiel, il considère que le dossier de synchro représente la totalité de la configuration active. Dans notre exemple, cela veut dire: mettre à jour l'ensemble B, et supprimer l'ensemble A (puisqu'il n'y a plus de configuration correspondante). Hors vous avez du contenu correspondant aux types de contenus de l'ensemble A, et Drupal vous prévient qu'il ne peut pas effectuer la synchro (ie supprimer les types de contenus A) car cela supprimerait du contenu que vous avez.
 
Heu... c'était clair ?
This post is useful!
This post is useless!
Re: maintenance d'un ensemble de sites d'une usine
je pense avoir à peu près compris l'explication.
Mais j'ai été très "bourrin": j'ai fait un export de la référence (nouveau type de contenu, pas de contenu créé) dans un tar.gz. Puis j'ai fait un import de ce fichier (intact) dans une copie, qui avait du contenu (de types variés) issus d'autres type de contenu que le nouveau (normal, il n'existait pas). Et aucun type de contenu qu'elle possède (instancié ou non) n'a été altéré dans la référence. Sinon, je comprendrai qu'elle râle :-)
Merci
This post is useful!
This post is useless!
Connectez-vous ou inscrivez-vous pour publier un commentaire