Outils pour utilisateurs

Outils du site


local:vmoodle:technique

Ceci est une ancienne révision du document !


VMoodle : Guide technique

Principe de virtualisation

La virtualisation de Moodle consiste à n'utiliser qu'une seule base de code installée pour opérer un nombre indéterminé de plates-formes Moodle, autonomes ou configurées en réseau. Le procédé utilise une mise en base de données (dynamique) des paramètres de configuration principaux (chemins et base de données) des instances virtuelles, et de procéder à une commutation très précoce de la configuration de service à partir de ce registre.

La commutation de configuration est basée sur la reconnaissance du nom d'hôte dans les variables d'environnement du serveur. Le nom d'hôte présenté par le serveur Web à l'environnement d'exécution PHP doit correspondre à l'identité d'hôte (wwwroot virtuel) stocké dans le registre. De ce fait, les cas d'usage suivant nécessitent des précautions et des mises en oeuvre particulières :

  • Utilisation de scripts CLI en mode console (voir ci-dessous)
  • Utilisation de plusieurs Moodle sur la même racine de domaine (en sous-répertoires)

Contraintes sur les scripts CLI

Les scripts CLI standard de Moodle ne sont pas compatibles avec la virtualisation. En effet, en l'absence d'environnement serveur définissant le nom de domaine activé, les scripts CLI standard sont incapables de procéder à la résolution de virtualisation.

C'est pourquoi l'implémentation VMoodle vous fournit la plupart des scripts CLI standard adaptés à un usage virtualisé par l'ajout d'un paramètre de ligne de commande –host permettant d'expliciter cette résolution :

 php {cliscript} --{param1}={val1} --host=http://virtuel.monmoodle.fr  

VMoodle fournit également une série de scripts d'industrialisation pour procéder massivement à des déploiements et des transformations de nombreuses unités Moodle.

Scripts standards disponibles

  • local/vmoodle/cli/automated_backups.php ⇒ admin/cli/automated_backups.php
  • local/vmoodle/cli/maketestplan.php ⇒ admin/tool/generator/cli/maketestplan.php
  • local/vmoodle/cli/mysql_collation.php ⇒ admin/cli/mysql_collation.php
  • local/vmoodle/cli/mysql_compressed_rows.php ⇒ admin/cli/mysql_compressed_rows.php
  • local/vmoodle/cli/mysql_compressed_rows.php ⇒ admin/cli/mysql_compressed_rows.php
  • local/vmoodle/cli/mysql_engine.php ⇒ admin/cli/mysql_engine.php
  • local/vmoodle/cli/purge_caches.php ⇒ admin/cli/purge_caches.php
  • local/vmoodle/cli/replace.php ⇒ admin/cli/replace.php
  • local/vmoodle/cli/reset_admin.php ⇒ admin/cli/reset_admin.php
  • local/vmoodle/cli/reset_password.php ⇒ admin/cli/reset_password.php
  • local/vmoodle/cli/schedule_task.php ⇒ admin/cli/schedule_task.php
  • local/vmoodle/cli/update_langpacks.php ⇒ admin/cli/update_langpacks.php
  • local/vmoodle/cli/upgrade.php ⇒ admin/cli/upgrade.php
  • local/vmoodle/cli/upgrade_assignments.php ⇒ admin/cli/upgrade_assignments.php

Scripts d'industrialisation

  • local/vmoodle/cli/bulkcreatenodes.php
  • local/vmoodle/cli/bulkdestroynodes.php
  • local/vmoodle/cli/bulkmysqlcollation.php
  • local/vmoodle/cli/bulkmysqlcompressedrows.php
  • local/vmoodle/cli/bulkmysqlengine.php
  • local/vmoodle/cli/bulkpurgecaches.php
  • local/vmoodle/cli/bulksnapshot.php
  • local/vmoodle/cli/bulkupdatelangpacks.php
  • local/vmoodle/cli/bulkupgrade.php

Scripts additionnels

Sur la base de cette structure de lancement industrialisé, d'autres scripts spécifiques VMoodle sont disponibles dans le répertoire /local/vmoodle/cli

Lanceur de commande de superadministration

VMoodle dispose d'un jeu de commandes de super-administration réseau pour lancer des actions sur tout ou partie des instances moodle virtualisées. Ces commandes peuvent être invoquées à partir de l'interface d'administration VMoodle, mais aussi désormais en ligne de commande par la commande :

php local/vmoodle/cli/run_command.php

La commande s'exécutera toujours en partant de l'instance principale (on ne peut lancer une commande de super-administration dans une instance virtuelle). La commande accepte 4 paramètres :

  • fromhost : si la commande doit effectuer une copie de données à partir d'une instance de référence (synchro de config, copie de table, copie de fichiers, etc), alors on donnera l'identité (wwwroot) de cette instance. En l'absence de paramètre c'est la plate-forme principale qui sera prise comme 'source'.
  • tohosts : une liste à virgule des identités d'instances destinataires de la commande. Les cibles sont identifiées par leur wwwroot. Alternativement, tohostsmatch peut être utilisée avec un motif REGEXP pour sélectionner un ensembles d'instances par filtrage de nom.
  • command : Le nom de la classe-commande (voir annexes)
  • attributes : une liste de clefs/valeurs formatée comme une QUERYSTRING http.

Exemple de commande :

 \$sudo -u www-data /usr/bin/php local/vmoodle/cli/run_command.php
     --fromhost=http://source.virtual.moodle.org 
     --tohosts=http://target1.other.moodle.org,http://target2.other.moodle.org
     --command=generic/CopyFilearea --attributes=filearea=mod_h5p/0/libraries

Utilisation de plusieurs Moodle sur la même racine d'hôtes (sous-répertoires)

Actuellement ce type d'installation n'est pas supporté par VMoodle.


Revenir à l'index du composant - Revenir à l'index des plugins - Revenir au catalogue

local/vmoodle/technique.1566811669.txt.gz · Dernière modification: 2024/04/04 15:52 (modification externe)