===== VMoodle (local) : Installation=====
{{ :vmoodle.png?nolink&120}}
====Introduction====
:!: ''Avertissement :'' La mise en oeuvre et l'exploitation d'une plate-forme Moodle sous virtualisation applicative nécessite une bonne connaissance du fonctionnement de la plate-forme et une bonne connaissance technique de l'environnement technique des plates-formes LAMP en général, et d'autant plus que les fonctions de réseau entre les différentes instances doivent être activées.
ActiveProlearn peut vous accompagner sur votre projet et vous fournir du conseil en déploiement et en construction de "constellations" de Moodle.
==== Installation ====
Pour virtualiser une plate-forme Moodle, vous devez :
* Installer le composant local VMoodle
* Installer le bloc VMoodle
* Configurer le fichier de configuration spécifique de la virtualisation
* Modifier votre fichier standard de configuration.
* Modifier quelques fichiers de l'implémentation du réseau Moodle (pour assurer la stabilité des clefs réseau si vous utilisez le réseau).
==== Installer les composants ====
* Téléchargez les archives du composant de virtualisation (local_vmoodle et block_vmoodle) et déployez les respectivement dans les répertoires '/local' et '/blocks' de votre plate-forme.
* Naviguez dans l'administration du site pour terminer l'installation logique des composants.
Après l'installation, la virtualisation n'est pas opérationnelle. Votre Moodle "principal" continue à fonctionner comme un Moodle normal.
Si vous opérez une version inférieure à 2.8 de Moodle, seul le bloc VMoodle 2.7 doit être installé. Voir l'entrée [[BlockVMoodle|VMoodle avant 2.8]] pour les détails concernant l'installation dans cette version.
==== Configurer le fichier de virtualisation ====
Ce fichier permet de définir une première connexion à la base de données qui joue le rôle de registre de virtualisation. Dans une installation VMoodle classique, c'est la base de données du premier Moodle installé qui contient le registre (table mdl_block_vmoodle). Cependant, il vous est possible d'externaliser ce registre et de le gérer dans une autre base de données et une autre application (tant que vous respectez son schéma d'attributs).
Le fichier de configuration modèle est situé dans le chemin :
/local/vmoodle/vconfig-dist.php
Copiez ce fichier sous le nom vconfig.php dans ce même répertoire (ou dans n'importe quel endroit où vous savez qu'il sera en sécurité) et renseignez la structure de connexion au registre. Dans une installation classique, ce seront les mêmes données que la connexion définie dans "config.php" de Moodle.
==== Adapter le fichier de configuration principal ====
Tout le travail de la virtualisation s'effectue dans le fichier de configuration principal de Moodle qui est toujours le premier fichier invoqué par toute "porte d'entrée" de Moodle.
Les modifications portent sur :
* Le déroutage de virtualisation
* La mise en place du déroutage pour les scripts CLI compatibles
* Des options de comportement de la plate-forme dans le cadre de réseaux de plates-formes.
le fichier vconfig.php défini précédemment effectue la boucle de reconfiguration virtuelle permettant de changer dynamiquement la base de données et le dossier de fichiers actif.
=== Dérouter pour la virtualisation ===
Cette inclusion doit être placée juste après l'appel au "setup.php" de votre fichier de configuration.
... {position du déroutage CLI} ...
require(/local/vmoodle/vconfig.php');
require_once(dirname(__FILE__) . '/lib/setup.php');
=== Mette en place le déroutage CLI ===
Le déroutage des scripts CLI permet de jouer une partie du fichier de configuration, puis rendre la main au script CLI appelant, recevoir l'hôte cible dans les paramètres de ligne de commande, puis revenir enfin rejouer la configuration complète sur la nouvelle configuration virtualisée.
Ajoutez la séquence suivante avant votre appel à vconfig.ghp :
// this fragment will trap the CLI scripts trying to work for a virtual node, and
// needing booting a first elementary configuration based on main config
if (isset($CLI_VMOODLE_PRECHECK) && $CLI_VMOODLE_PRECHECK == true) {
$CLI_VMOODLE_PRECHECK = false;
return;
}
=== Clefs de configuration techniques ayant un impact sur le fonctionnement de VMoodle ===
$CFG->mainhostprefix = 'http://physique.monmoodle';
Cette clef permet d'expliciter quel est le Moodle principal à tout moment. Ceci est utile pour certains composants associés à la virtualisation qui doivent reconnaître, une fois leur configuration acquise, s'il sont le Moodle principal ou s'ils sont virtuels.
$CFG->forced_plugins_settings['user_mnet_hosts']['admin_override'] = true;
Cette clef permet de forcer le bloc [[:Blocks:UserMnetHosts|User Mnet Hosts (Mes hôtes du réseau)]] à laisser exceptionnellement passer les administrateurs principaux locaux (compte admin) à travers le réseau. Un exemple courant d'utilisation est après l'appel à vconfig.php :
$CFG->forced_plugins_settings['user_mnet_hosts']['admin_override'] = false;
if (preg_match('#'.$CFG->mainhostprefix.'#', $CFG->wwwroot)) {
$CFG->forced_plugins_settings['user_mnet_hosts']['admin_override'] = true;
}
Dans cette configuration, seul l'administrateur local de la plate-forme principal pourra visiter les autres plates-formes. Les administrateurs locaux des Moodle virtuels se verront afficher un refus de circuler. La raison de cette précaution est que la circulation des utilisateurs réplique les comptes dans les plates-formes visitées. Ceci peut conduire à de nombreuses confusions que de détenir dans toutes les plates-formes les administrateurs locaux de toutes les autres.
$CFG->mnetsiteadmins = true;
Cette clef permet de modifier le comportement de la pile MNET en autorisant des comptes externes (réseau) a être administrateurs de site localement.
==== Mise en oeuvre du cron virtualisé ====
=== Mise en place à partir de cron simples ===
Un plate-forme Moodle fonctionne avec une tâche cron associée qui effectue tout un ensemble de tâches automatiques et cadencées sur les données de Moodle.
La mise en oeuvre de plates-formes virtualisées nécessite également de mettre en oeuvre ces tâches pour chacune des instances virtuelles qui sont créées dans la virtualisation.
En HTTP, vous pouvez enregistrer vos tâches cron sur les domaines d'exploitation propres de vos instances, comme vous le feriez pour des plates-formes standard. Par contre, pour une mise en oeuvre par script serveur utiliser le script standard /admin/cli/cron.php n'est pas possible, car ce type d'appel ne fournit aucune informations permettant au basculement virtuel de se faire.
Pour obtenir un basculement effectif de l'instance de service, utilisez à la place le script :
/local/vmoodle/cli/cron.php --host=http://my_virtual.mymoodledomain.com
en précisant explicitement la racine wwwroot que vous voulez adresser.
=== Utilisation de l'ordonnanceur de cron ===
VMoodle fournit en plus un ordonnanceur de cron qui est lancé sur l'installation principale, et est capable de faire "tourner" automatiquement le déclenchement des crons virtuels de toutes les instances. Vous pouvez utiliser ce script en mode HTTP ou en mode script :
wget http://main.mymoodledomain.com/local/vmoodle/vcron.php
ou
sudo -uwww-data php /root/to/moodle/local/vmoodle/cli/vcron.php
La fréquence de rotation de l'ordonnanceur de cron doit être très rapide afin de permettre que chaque site virtuel soit activé suffisamment souvent.
----
[[:Local:VMoodle|Revenir à l'index du composant VMoodle]] -
[[:Plugins|Revenir à l'index des plugins]] - [[:start|Revenir au catalogue]]