VMoodle Local

From MoodleDocs

This doc is in progress

This plugin is the continuity of the older VMoodle block.

the core implementation of VMoodle has moved from a block to a local plugin, as local plugin naturally handles subplugin without core modification.

See The VMoodle block implementation for complementary information.


  1. Get the plugin archive (vmoodle.zip, but now served from the "local" category) and deploy it into the /local folder of your Moodle distribution.
  2. Run the administration notifications to get the plugin registered.

Once the local plugin has been registered, there is a pair of things to do to get VMoodle start accepting virtualisation :

the vconfig.php file

You need first to edit the copy the vconfig-dist.php in local/vmoodle to vconfig.php, and give the database access schema to your master database. (most often, this will use the same DB access credentials than master config.php). VConfig will look like :

  $CFG->vmasterdbhost = 'localhost';
  $CFG->vmasterdbtype = 'mysqli';
  $CFG->vmasterdbname = 'moodle';
  $CFG->vmasterdblogin = '<mydblogin>';
  $CFG->vmasterdbpass = '<mydbpass>';
  $CFG->vmasterdbpersist =  false;
  $CFG->vmasterprefix    = 'mdl_';
  $CFG->vmoodledefault    = 1; // tells if the default physical config can be used as true host

Keep this file in the local/vmoodle directory, or raise it up the root level of Moodle. (No impact). What follows will consider the first option.

the standard config.php file

you need fist to hook the VMoodle configuration in your config file, and define explicitly the $CFG->dirroot key as this would be done too late by setup.php.

  $CFG->dirroot = '<your/moodle/path>';
  $CFG->mainhostprefix = 'http://you.main.moodle.prefix';
  include_once $CFG->dirroot.'/blocks/vmoodle/vconfig.php';

Note that including from a hardwritten path will not preserve you to define $CFG->dirroot, as this path is used in VMoodle bootstrapping code.

the mainhostpreifx will tell the administration menu to activate the access point to the VMoodle management only in the primary installation of Moodle. there is indeed no reason that you can reach the VMoodle control board from a child site. It just needs discriminate clearly your master Moodle url.

VMoodle Features

Features Addressing the "Moodle Factory" Administration

  • Virtualisation Hook for the standard 'config.php' Configuration file
  • Deployment of new instances from within the Master instance administration
  • Moodle snapshot to create platform templates for further deployment
  • On demand Moodle deployment
  • Deployment of virtualized Moodle within a Moodle Network strategy
  • VMoodle Cron rotation handles automatically all instances in a VMoodle array.
  • Additional Key Refresh Automation to keep SSH keys always consistent.

Features Addressing the "MNetwork Level Administration"

Multiplying instances will ever raise issues of administration because increasing the amount of information to be managed and complexity of the system. The VMoodle feature provides a super-administration toolset allowing distributing administration commands across a Moodle Network so getting things faster even when the number of Moodle gets quite high. This administration layer provides a command framework for extensibility.

  • SQL orders can be distributed on all managed nodes
  • Role comparison and sync between many nodes
  • Capability resync between many nodes
  • Massive upgrade of all nodes when upgrading or installing new plugins.

Access to Mnetwork Level Administration

You may access to the MNet level administration clicking on the link "Administrate" showing in the footer of the "VMoodle" bloc instance.

Three subservices are available :