VMoodle Block: Difference between revisions
(Replaced existing version with Moodle 2.3 version, which has been tidied up to include links t other resorces and a more understable English.) |
|||
Line 1: | Line 1: | ||
VMoodle is a non standard infrastructure embedded within a Moodle block. It provides technical toolset to deploy and manage a set of virtualized Moodles from a single codebase. All virtualized moodles will run their own instance | VMoodle is a non standard infrastructure embedded within a Moodle block. It provides a technical toolset to deploy and manage a set of virtualized Moodles from a single codebase. All virtualized moodles will run their own instance independently from each other, or according themselves in building a Moodle Network cooperation strategy. | ||
This work is the result of a couple of years of | This work is the result of a couple of years of development with the participation of Intel Corp. | ||
One of the key effect of using VMoodling virtualisation is that maintenance of multiple Moodle running with similar | One of the key effect of using VMoodling virtualisation is that maintenance of multiple Moodle running with similar equipment gets much easier and saves a lot of time. | ||
Moodle virtualisation process is achieved using a dynamic configuration definition, stored in a Moodle | Moodle virtualisation process is achieved using a dynamic configuration definition, stored in a Moodle instance called "master instance". Virtualising such configuration allows dynamic switching of database and moodledata context when entering a Moodle page. | ||
As was mentioned above, all the Moodle clones are completely | As was mentioned above, all the Moodle clones are completely independent and WILL NOT share any data. Using many instances with an adequate [[MNet]] strategy allows for the making of strong and powerful distributed Moodle configurations, aimed at large organizations. | ||
==Installation== | ==Installation== | ||
===Compatibility=== | ===Compatibility=== | ||
VMoodle supports now MySQL databases and (less tested) | VMoodle supports now [[MySQL]] databases and (less tested) [[PostgreSQL]]. | ||
Note that Moodle do not support | Note that Moodle do not support PostGres schemas at install time. | ||
===Prerequisites=== | ===Prerequisites=== | ||
The VMoodle blocks provides a complete and complex virtualisation process for Moodles and a set of network level administration capabilities. For the block running properly | The VMoodle blocks provides a complete and complex virtualisation process for Moodles and a set of network level administration capabilities. For the block running properly, compared to the original version in Moodle 1.9, Moodle 2 version of Moodle will need less core changes to operate in full feature range. | ||
* | * Block bound [https://docs.moodle.org/23/en/admin/environment/php_extension/xmlrpc XMLRPC] calls. => natively resolved in Moodle 2.x new service registration method. | ||
* Block sub-plugins => Now supported in the generic "subplugins" infrastructure. | * Block sub-plugins => Now supported in the generic "subplugins" infrastructure. | ||
* VMoodle based networks in a virtualisation configuration are intended to build coherent distributed platforms within an institutional | * VMoodle based networks in a virtualisation configuration are intended to build coherent distributed platforms within an institutional environment. Urbanisation of such systems will often take some benefit of using extensively [https://docs.moodle.org/23/en/admin/environment/php_extension/xmlrpc XMLRPC] interactions between nodes for enhancing the distributed consistence. Standard Moodle codebase ensures [[MNet]] keys are renewed when a user jumps from a node to a remote node, but key ARE NOT renewed automatically when coming to obsolescence. The effect is that after a key has gone away, all services based on [https://docs.moodle.org/23/en/admin/environment/php_extension/xmlrpc XMLRPC] will be broken until key exchange has not been restored again. The VMoodle block provides an "automatic [[MNet]] key rotation" enhancement that fixes this situation. [http://tracker.moodle.org/browse/MDL-23195]. This point is not resolved in Moodle 2.0 architecture and still needs a patch in the [[MNet]] core library. | ||
VMoodle distribution is provided with adequate | VMoodle distribution is provided with adequate patches for all these requirements. | ||
IMPORTANT NOTE : On | IMPORTANT NOTE : On [[MySQL]], VMoodle provides Moodle instance capturing for making deployment templates. This assumes the master Moodle controlling deployments needs having a [[MySQL]] user that has DATABASE CREATE permission. | ||
===Block Installation=== | ===Block Installation=== | ||
VMoodle block will install just as a usual Moodle block. Subplugins patch can be installed later, causing sub-plugins to be installed in a second stage : | VMoodle block will install just as a usual Moodle [[Blocks|block]]. Subplugins patch can be installed later, causing sub-plugins to be installed in a second stage : | ||
# Unzip the block code in the "blocks" folder of your Moodle install. | # Unzip the block code in the "blocks" folder of your Moodle install. | ||
# Trigger the | # Trigger the administration/notification menu. | ||
==VMoodle Block Features== | ==VMoodle Block Features== | ||
===Features | ===Features Addressing the "Moodle Factory" Administration=== | ||
* Virtualisation Hook for the standard 'config.php' file | * Virtualisation Hook for the standard 'config.php' [[Configuration file]] | ||
* Deployment of new instances from within the Master instance administration | * Deployment of new instances from within the Master instance administration | ||
* Moodle snapshot to create platform templates for further deployment | * Moodle snapshot to create platform templates for further deployment | ||
* On demand Moodle deployment | * On demand Moodle deployment | ||
* | * Deployment of virtualized Moodle within a Moodle Network strategy | ||
* VMoodle | * VMoodle [[Cron]] rotation handles automatically all instances in a VMoodle array. | ||
* Additional Key Refresh Automation to keep SSH keys always | * Additional Key Refresh Automation to keep [https://docs.moodle.org/dev/SSH_key SSH keys] always consistent. | ||
===Features | ===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 block 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. | Multiplying instances will ever raise issues of administration because increasing the amount of information to be managed and complexity of the system. The VMoodle block 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. | ||
Line 59: | Line 60: | ||
====Access to Mnetwork Level Administration==== | ====Access to Mnetwork Level Administration==== | ||
You may access to the | 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 : | Three subservices are available : | ||
* [[Moodle Instance Management|Managing virtual instances and deployment]] : lists nodes and allows enabling, disabling | * [[Moodle Instance Management|Managing virtual instances and deployment]] : lists nodes and allows enabling, disabling snapshooting and deleting a node, ... | ||
* [[Super-administration|Super-administration]] : a set of primitives that can be processed simultaneously on distributed Moodles. | * [[Super-administration|Super-administration]] : a set of primitives that can be processed simultaneously on distributed Moodles. | ||
* [[MNET Service Template|MNET Services Template]] : A form to define a template or | * [[MNET Service Template|MNET Services Template]] : A form to define a template or [[MNet]] services settings to be applied as a default to any new Moodle clone. | ||
==See Also== | ==See Also== | ||
Line 71: | Line 72: | ||
[[es:Bloque VMoodle]] | |||
[[fr:VMoodle]] | [[fr:VMoodle]] | ||
[[Category:Contributed code]] |
Revision as of 17:17, 23 February 2013
VMoodle is a non standard infrastructure embedded within a Moodle block. It provides a technical toolset to deploy and manage a set of virtualized Moodles from a single codebase. All virtualized moodles will run their own instance independently from each other, or according themselves in building a Moodle Network cooperation strategy.
This work is the result of a couple of years of development with the participation of Intel Corp.
One of the key effect of using VMoodling virtualisation is that maintenance of multiple Moodle running with similar equipment gets much easier and saves a lot of time.
Moodle virtualisation process is achieved using a dynamic configuration definition, stored in a Moodle instance called "master instance". Virtualising such configuration allows dynamic switching of database and moodledata context when entering a Moodle page.
As was mentioned above, all the Moodle clones are completely independent and WILL NOT share any data. Using many instances with an adequate MNet strategy allows for the making of strong and powerful distributed Moodle configurations, aimed at large organizations.
Installation
Compatibility
VMoodle supports now MySQL databases and (less tested) PostgreSQL.
Note that Moodle do not support PostGres schemas at install time.
Prerequisites
The VMoodle blocks provides a complete and complex virtualisation process for Moodles and a set of network level administration capabilities. For the block running properly, compared to the original version in Moodle 1.9, Moodle 2 version of Moodle will need less core changes to operate in full feature range.
- Block bound XMLRPC calls. => natively resolved in Moodle 2.x new service registration method.
- Block sub-plugins => Now supported in the generic "subplugins" infrastructure.
- VMoodle based networks in a virtualisation configuration are intended to build coherent distributed platforms within an institutional environment. Urbanisation of such systems will often take some benefit of using extensively XMLRPC interactions between nodes for enhancing the distributed consistence. Standard Moodle codebase ensures MNet keys are renewed when a user jumps from a node to a remote node, but key ARE NOT renewed automatically when coming to obsolescence. The effect is that after a key has gone away, all services based on XMLRPC will be broken until key exchange has not been restored again. The VMoodle block provides an "automatic MNet key rotation" enhancement that fixes this situation. [1]. This point is not resolved in Moodle 2.0 architecture and still needs a patch in the MNet core library.
VMoodle distribution is provided with adequate patches for all these requirements.
IMPORTANT NOTE : On MySQL, VMoodle provides Moodle instance capturing for making deployment templates. This assumes the master Moodle controlling deployments needs having a MySQL user that has DATABASE CREATE permission.
Block Installation
VMoodle block will install just as a usual Moodle block. Subplugins patch can be installed later, causing sub-plugins to be installed in a second stage :
- Unzip the block code in the "blocks" folder of your Moodle install.
- Trigger the administration/notification menu.
VMoodle Block 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 block 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 :
- Managing virtual instances and deployment : lists nodes and allows enabling, disabling snapshooting and deleting a node, ...
- Super-administration : a set of primitives that can be processed simultaneously on distributed Moodles.
- MNET Services Template : A form to define a template or MNet services settings to be applied as a default to any new Moodle clone.
See Also
VMoodle Virtualization block Modules and Plugins database entry.