Quantcast
Channel: Assistance technique
Viewing all articles
Browse latest Browse all 47840

Re: Utiliser Git pour gérer plusieurs Moodle

$
0
0
par Eric Villard.  

Salut à vous,

je profite de ce fil de discussion pour vous faire part de mon avancement sur ce sujet.

Les serveurs dont j'ai la charge ont une base linux (Ubuntu).

J'ai créé la structure particulière suivante sous un compteutilisateur (ex : mdluser) :
/home/mdluser
/home/mdluser/config
/home/mdluser/config/main
/home/mdluser/config/sites
/home/mdluser/data
/home/mdluser/plugins
/home/mdluser/theme
/home/mdluser/www

Les éléments de détails importants sont :

  • /home/mdluser/config/main :  est un dépôt GIT paramétré pour accepter des mises à jour en mode 'push' et contient un fichier de configuration config.php qui est un tronc commun à tous les sites. Le routage est basé sur le nom de domaine du site.
  • /home/mdluser/config/sites :  est un dépôt GIT paramétré pour accepter des mises à jour en mode 'push' et contient pour chaque site un sous-dossier dont le nom est le nom de domaine du site. Celui-ci fournit un fichier config.php dynamiquement inclus dans le précédent. Ce fichier de configuration contient les éléments particuliers au site courant (ex : connexion à la base de données)
  • /home/mdluser/data : contient pour chaque site un sous-dossier dont le nom est le nom de domaine du site et qui héberge les données
  • /home/mdluser/plugins : contient un alias vers le fichier /home/mdluser/config/main/config.php et la sous-arborescence des plugins à intégrer comme si ce dossier était le dossier racine de moodle. Chaque dossier d'installation de plugin est un dépôt GIT paramétré pour accepter des mises à jour en mode 'push'
    ex : mod/questionnaire où le dossier questionnaire est un dépôt GIT
  • /home/mdluser/theme : même configuration et même fonctionnement que le dossier plugins.
  • /home/mdluser/www : contient les arborescences de sites Moodle qui sont des dépôt GIT paramétrés pour accepter des mises à jour en mode 'push'.
    Il existe 2 types de sites Moodle :
    • mutualisé : l'arborescence de site est partagée entre plusieurs sites Moodle
    • indépendante : en cas de besoin particulier pour un site

Chaque dossier contient à minima un alias vers le fichier /home/mdluser/config/main/config.php, et peut contenir d'autres liens vers les dossiers d'installation des plugins et des thèmesà intégrer.

Au final j'ai donc les dépôts GIT suivants :

  • 1 pour la configuration commune à tous les sites
  • 1 par serveur pour l'ensemble des configurations particuliaires à chaque site
  • 1 par plugin non contenu dans la distribution Moodle par défaut
  • 1 par thème non contenu dans la distribution Moodle par défaut
  • 1 par arborescence Moodle nécessaire

Inconvénients :

  • plusieurs dépôts à gérer
  • pour le moment pas de fonctionnalités dans Moodle pour gérer facilement les plugins et les thèmes hors arborescence du site

Avantages :

  • facilité de mise à jour car beaucoup de ressources sont partagées entre plusieurs sites
  • granularité du paramétrage, de la configuration et des mises à jours plus fine
  • plus grande facilité d'automatisation de certains processus
  • structure compatible Moodle 1.9.x et 2.x.x.
    Pour moodle 1.9.x, il faut ajouter les dossiers mdluser/plugins-1.9 et mdluser/theme-1.9, le principe reste le même

Actuellement à l'étude :

  • un système de gestion de la configuration plus robuste et gérant la problématique de ligne de commande
  • un plugin pour la gestion des plugins et thèmes hors arborescence Moodle
  • un système de gestion des versions de l'intégralité des sites permettant de revenir à une configuration d'un instant T en conservant la cohérence entre chaque brique du site (site web, plugins, thèmes, configuration, données et base de données)

Pourquoi les dépôts GIT sont-ils paramétrés pour accepter le mode 'push' ?
Simplement parce que je fais d'abord les intégrations sur mon poste de travail et que c'est super pratique ;)
Je souhaite au final centraliser la gestion des mises à jour depuis un serveur d'administration car j'ai en charge plusieurs serveurs Moodle.

En complément un lien vers une problèmatique à laquelle j'ai été confronté lors de changement de branches MOODLE_XX_STABLE : https://moodle.org/mod/forum/discuss.php?d=206340

Voilà pour le moment.

Restant à votre disposition pour tout complément d'information, partage de code...
N'hésitez pas à me faire part de vos remarques.

@+

Eric

 

 


Viewing all articles
Browse latest Browse all 47840


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>