MediaWiki-Vagrant/fr





MediaWiki - Vagrant est un environnement de développement de MediaWiki portable. Il se compose d' un ensemble de scripts de configuration pour Vagrant et VirtualBox qui automatisent la création d'une machine virtuelle qui exécute MediaWiki.

La machine virtuelle que MediaWiki - Vagrant créé fait qu'il est facile d'apprendre, de modifier et d'améliorer le code de MediaWiki : des informations de débogage utiles sont affichées par défaut, et les différents outils de développement sont mis en place spécifiquement pour inspecter et interagir avec le code MediaWiki, y compris un débogueur puissant et un interpréteur interactif. Le meilleur de tous, car la configuration est automatisée et contenue dans un environnement virtuel, les erreurs sont alors faciles à corriger.

Démarrage rapide
(Si vous installez MediaWiki - Vagrant à partir de la distribution USB, suivez les étapes du fichier README plutôt que les quatre premières étapes.)

  Téléchargez Git  (Mac or Linux only) Get NFS if it is not already installed. It is usually already installed in MacOS X. In Ubuntu, use. Fedora usually come with the required packages installed, see the specific documentation page to make sure a Fedora NFS setup is OK.   Télécharger la dernière version de VirtualBox.   [//www.vagrantup.com/downloads.html Télécharger la dernière version de Vagrant.] (Il est peu probable que MediaWiki - Vagrant soit compatible avec les versions de Vagrant antérieures à la version 1.4.x) Récupérez le code et créez votre machine :

Activer les fonctionnalités additionnelles de MediaWiki, par exemple :

 Lorsque Vagrant est opérationnel, configurez votre machine, accédez à http://127.0.0.1:8080/ pour trouver votre instance MediaWiki. Le mot de passe admin est. Vagrant va recréer le fichier /etc/exports la prochaine fois que vous l'exécuterez. vagrant up.

MediaWiki - Vagrant ne fonctionnera pas sur un hôte qui ne prend pas en charge VT-X, car il est prévu pour fonctionner avec un invité 64bit (machine virtuelle). MediaWiki - Vagrant doit fonctionner sur une machine virtuelle 64 bits, en partie parce qu'il utilise des paquets deb de la production WMF qui sont uniquement compilés pour l'architecture amd64.

Si vous y êtes invité, entrez votre nom d'utilisateur Gerrit (recommandé), ou tout simplement appuyez sur Entrée.

Si vous utilisez Windows
Téléchargez Git for Windows et exécutez les commandes  dans son interface système Git Bash. Exécutez setup.bat</tt> à partir de cmd.exe shell</tt>.

Problèmes de démarrage
Si vos questions ne trouvent pas de réponses ici, IRC est une bonne option, en particulier le canal.

Solutions actuelles de contournement
Parce que MediaWiki - Vagrant et HHVM sont en développement continu, la création d'un nouvel environnement MediaWiki - Vagrant peut être sujet à des défaillances d'approvisionnement. Vous trouverez ci-dessous les solutions de contournement actuelles pour les erreurs connues qui peuvent survenir lors de l'approvisionnement de l'environnement initial. Vous devez effectuer les solutions suivantes uniquement après l'exécution de  et avoir pris en compte le message d'erreur mentionné.

Error: "Could not set file on ensure: Is a directory (/etc/hhvm/php.ini)
being tracked by https://phabricator.wikimedia.org/T87478

Tout hôte
Par exemple :
 * Vous pouvez essayer d'installer les versions de VirtualBox et Vagrant que votre distribution Linux vous fournit. Si vous utilisez une version récente de Debian ou Ubuntu, essayez sudo apt-get install virtualbox vagrant pour installer les packages pour VirtualBox et Vagrant. (Vous avez besoin d'installer le paquet  recommandé pour Vagrant.)
 * Si vous obtenez des erreurs de vagrant up, installez à la place les versions les plus récentes de VirtualBox et Vagrant.
 * Si vous avez des erreurs de "puppet" vous pourriez avoir besoin d'initialiser les sous-modules de "puppet", dans le répertoire vagrant exécutez git submodule update --init
 * Utilisez http://127.0.0.1:8080/info.php pour vérifier que le serveur Apache/PHP est en cours d'exécution.
 * Vous pourriez avoir envie de comparer la sortie de la première exécution de vagrant up dans votre terminal avec cet échantillon. La configuration initiale peut prendre un certain temps; si elle semble se bloquer quelque part, mais sans avoir d'erreurs, il suffit de lui laisser un peu temps.
 * Si vous obtenez des avertissements que vos "Guest Additions" de VirtualBox ne sont pas dans la bonne version, vous pouvez essayer d'installer le plugin vagrant-vbguest qui les met à jour automatiquement.
 * Vagrant perd rarement la liaison avec votre VM. This thread parle des façons de travailler autour de ça (par exemple l'attachement d'un ancien disque dur virtuel vers le nouveau profil)
 * Assurez-vous que ce référentiel  soit à jour :
 * Assurez-vous que ce référentiel  soit à jour :
 * Assurez-vous que vous ayez bien activé la virtualisation dans le BIOS. Parfois, cela se trouve dans les paramètres de sécurité.
 * Assurez-vous que vos paramètres de codage de langue soient bien en UTF-8. Si vous obtenez "invalid byte sequence in US-ASCII", essayez de (re) paramétrer vos variables d'environnement LANG et LC_ALL à une valeur convenable.

Spécifique à Windows

 * Si vous êtes sous Windows et que vous obtenez le message "La machine invité est entrée dans un état non valide" - "Extinction", essayez de télécharger une version de VirtualBox 4.3.15 (there is a known problem with 4.3.14 on Windows). Si cela ne vous aide pas, vérifiez que vous ayez bien activé le paramètre "Hardware Virtualization Technology" (VT-x ou AMD-V) dans le BIOS. La virtualisation du matériel est nécessaire, il ne s'agit pas d'une simple option pour améliorer les performances. (Pour certains ordinateurs portables, il est nécessaire d'enlever le câble d'alimentation et la batterie pendant 30 secondes ).
 * VirtualBox est incompatible avec Hyper-V de Microsoft. Si vous avez Hyper-V d'activé – ce qui peut être le cas par défaut si vous avez installé Visual Studio – vous obtiendrez les erreurs ci-dessus en essayant de démarrer une machine virtuelle dans VirtualBox. Il y a deux possibilités :
 * Désactivez Hyper-V grâce à l' "Ajout/Suppression de fonctionnalités Windows" dans le Panneau de contrôle puis, redémarrez. Cela va vous permettre de faire fonctionner VirtualBox, mais va vous empêcher d'utiliser toute VM Hyper-V que vous pourriez avoir, comme par exemple les émulateurs de téléphone Windows.
 * Ou, utilisez le fournisseur Hyper-V pour Vagrant au lieu de VirtualBox. Cela peut être instable.

Spécifique au Mac

 * Erreurs NFS Pour éviter les erreurs NFS lors de l'installation, assurez vous que le pare-feu accepte bien les connexions : Apple > Préférences Système > Sécurité et confidentialité > Pare-feu > Options de pare-feu. Vous aurez besoin de décocher la case "Bloquer toutes les connexions entrantes" et probablement aussi de décochez "Activer le mode furtif" pour pouvoir accepter les éléments suivants : netbiosd, nfsd, rpc.lockd, rpc.rquotad, rpcbind et VBoxHeadless. Notez que vous devrez peut-être redémarrer votre ordinateur et changer le statut à "Autoriser les connexions entrantes" pendant un "couple s". Après l'installation, vous allez pouvoir être en mesure de re-vérifier "Bloquer toutes les connexions entrantes" et "Activer le mode furtif" maintenant que les règles de pare-feu ont été mises à jour.
 * Sinon, vous pouvez désactiver les partages NFS via le.

Debian et Ubuntu

 * MediaWiki - Vagrant utilise NFS pour partager certains dossiers avec la machine hôte (votre ordinateur). Vous devez configurer votre ordinateur comme un "serveur NFS", voir par exemple Ubuntu instructions. Sous Debian, sudo apt-get install nfs-kernel-server fonctionnera ; vous aurez peut-être aussi besoin de . Notez que le serveur NFS de Debian ne démarre pas sans une entrée dans  . Si   ne montre pas que les services "nfs" sont en cours d'exécution, c'est que c'est probablement le cas. l'ajout de votre répertoire personnel comme étant la dernière ligne dans /etc/exports</tt> et /etc/init.d/nfs-kernel-server restart sera généralement suffisant pour outrepasser ce problème de la poule et de l'oeuf.


 * Les partages NFS utilisés par MediaWiki - Vagrant ne peuvent pas être exécutés à partir d'un répertoire crypté, ce qui peut être le cas si vous êtes sous Ubuntu, et que vous utilisez un répertoire personnel chiffré. Pour exécuter MediaWiki - Vagrant vous pouvez soit :
 * Déplacez le répertoire MediaWiki - Vagrant vers un volume non crypté (par exemple ) avant l'exécution de.
 * Sinon, vous pouvez également désactiver les partages NFS via.


 * Si vous obtenez des erreurs de redirection de port qui disent que les ports sont en cours d'utilisation, vous devrez peut-être ouvrir Virtual Box, supprimer entièrement la machine virtuelle, et essayer à nouveau.

Debian "wheezy" (et avant)
Surprise ! Votre distribution a une ancienne version du package Vagrant, vous devez alors l'installer à partir du site officiel official site. Voilà à quoi votre défaillance pourrait ressembler autrement :

Utilisation de base
L'outil de ligne de commande vagrant sur la machine hôte fournit plusieurs sous commandes pour contrôler votre machine virtuelle. Vous en avez déjà utilisé une : vagrant up, qui tourne sur la machine virtuelle. Comme la plupart des sous commandes vagrant, vous devez l'exécuter à partir du répertoire MediaWiki - Vagrant ou l'un de ses enfants. Lorsque vous l'exécutez pour la première fois, Vagrant va chercher une image système et configurer le logiciel nécessaire pour l'exécution de MediaWiki. Cela peut prendre 1-2 heures d'utilisation du CPU avec une connexion à large bande, mais ça ne se produira que la première fois. Si vous exécutez à nouveau vagrant up par la suite, ça va tout simplement démarrer la machine.

vagrant ssh démarre un shell interactif de connexion sur la machine virtuelle. Il va vous connecter en tant qu'utilisateur vagrant ; L'accès root est disponible via sudo, qui s'utilise sans avoir recours à un mot de passe. Parce que la machine virtuelle est entièrement "sandboxed" au sein de votre ordinateur, elle est configuré pour la commodité, pas pour la sécurité. En règle générale, chaque fois que vous rencontrerez une demande de mot de passe, le mot de passe à saisir sera.

Lorsque vous vous connectez, vous devriez voir une bannière MediaWiki coloré et quelques rappels de commandes utiles.

La commande hhvmsh va démarrer un interpréteur PHP interactif avec le code de base de MediaWiki déjà chargé. Vous pouvez saisir du code, appuyer sur la touche 'entrée', et le code sera évalué immédiatement. Si vous commencez une ligne avec '=', la valeur calculée sera affichée. Tapez ?</Kbd> pour une aide rapide ou help start pour obtenir des instructions supplémentaires.

Le dossier  correspond au dossier MediaWiki - Vagrant sur ​​votre machine hôte, et son contenu est partagé. Le code de MediaWiki est installé dans. Cela vous permet d'utiliser votre éditeur d'environnement par défaut sur votre machine hôte pour modifier le code de MediaWiki qui fonctionne sur votre machine virtuelle.

Utilisez vagrant git-update pour garder vos dépôts Git, les bibliothèques externes, et le schéma de base de données à jour. Cette commande est équivalente à l'utilisation de
 * 1) git pull dans core</tt> et tous les répertoires d'extension et de thèmes (skins)
 * 2) composer update pour veiller à ce que les dernières bibliothèques "Composer-managed" soient disponibles.
 * 3) Et pour finir, le script.

Si vous faites des mises à jour à partir de git manuellement, vous devrez peut-être exécuter composer update pour télécharger les bibliothèques externes requises par MediaWiki. Vous pouvez exécuter le script  pour voir si composer update est nécessaire.

Déconnectez-vous de votre machine virtuelle en tapant logout ou en appuyant sur CTRL + D. Maintenant que vous êtes de nouveau dans une invite de commande standard, vous pouvez exécuter vagrant halt pour arrêter la machine virtuelle et vagrant up pour la "remonter". vagrant destroy supprimera les fichiers de la machine virtuelle; Cette commande est utile si vous voulez revenir dans l'état d'origine. (Vous aurez besoin d'exécuter vagrant up à nouveau pour instancier une nouvelle machine virtuelle)

Utilisation des rôles
MediaWiki-Vagrant met en place une instance MediaWiki de base par défaut, mais cela demande aussi de savoir comment configurer une gamme de logiciels complémentaires, y compris certaines extensions populaires de MediaWiki et leurs dépendances. Ces piles de logiciels optionnels sont communément appelées «rôles» et MediaWiki-Vagrant offre une interface en ligne de commande simple et puissante pour les gérer.

<div style="width: 375px; font-family: Consolas, monaco, monospace; font-size: 13px; background-color: #333; color: #fff; padding: 1px 12px; margin:auto;"> $ vagrant roles list


 * 1) Affiche une liste des rôles disponibles.

<div style="font-family: Consolas, monaco, monospace; font-size: 13px; background-color: #333; color: #fff; padding: 1px 12px; width: 375px;margin: auto;"> $ vagrant roles enable role


 * 1) Activer les "rôles" pour cette machine.

<div style="font-family: Consolas, monaco, monospace; font-size: 13px; background-color: #333; color: #fff; padding: 1px 12px; width: 375px;margin: auto;"> $ vagrant roles disable role

Regardez une petite screencast montrant comment utiliser les rôles. Vous obtiendrez plus d'informations avec Rôles sur certains rôles.
 * 1) Désactiver les "rôles" pour cette machine.

Si vous ajoutez de nombreux rôles, vous devrez peut-être augmenter la mémoire disponible sur la VM Vagrant. En particulier, la mise en place du rôle "browsertests" qui implique la compilation du  ruby Gem qui est une tâche gourmande en mémoire; si elle plante essayez de libérer de la mémoire dans la machine virtuelle ou d'augmenter son allocation mémoire.

Voir la section Authoring roles ci-dessous si vous êtes intéressé pour ajouter des rôles à MediaWiki-Vagrant.

Centralauth
Il y a des rôles qui nécessitent une attention particulière, le rôle centralauth ne fait pas fonctionner les migrations de base de données automatiquement via "puppet" et exige leur exécution à la main. Si vous obtenez des erreurs en approvisionnant ce rôle, essayez d'exécuter ce script à partir de l'extension et de voir les erreurs qui s'affichent en sortie :

mwscript extensions/CentralAuth/maintenance/migrateAccount.php --username 'Admin' --auto

Une fois que vous aurez obtenu une erreur plus concrète, vous aurez probablement besoin de savoir qu'elle est la migration à faire tourner parmi celles-ici : extensions / CentralAuth / db_patches

Copie du noyau MediaWiki en local
Sometimes you may want to start over from scratch by removing the entire vagrant directory or cleaning out the vagrant/mediawiki directory. In order to speed up the vagrant provisioning process, you may want to consider keeping a local, updated clone of the MediaWiki core that you copy into vagrant/mediawiki.

for example, assuming you are cloning MediaWiki repos into ~/projects/mediawiki/ :

Mise à jour des dépôts clonés
Update the cloned repos as often as possible/necessary.

Recharger Vagrant
Exécutez vagrant reload après votre vagrant up initial et après toute nouvelle commande vagrant provision.

Quand activer les rôles
Enable roles only once you've successfully run your first vagrant up.

Vagrant derrière un proxy
If you are behind a proxy, Vagrant might throw some errors. You can install vagrant-proxyconf. It’s a plugin that allows your virtual machine to use specified proxies. This is a quick set up guide. For a detailed documentation you may check here.

Install the plugin:

To configure proxy settings for all softwares on all vagrant VMs, add following lines to your  (default  ).

Replace the addresses with the ip and port number of your proxy server. Use the config.proxy.no_proxy option to list out all the sites/domains for which you might want to bypass proxy. For example,

Now when you run a vagrant up, there shouldn’t be any warnings.

To disable the plugin set config.proxy.enabled to false or empty string (""). You can also disable it for specific applications. For example,

MediaWiki-Vagrant prep
Vous envisagerez peut-être d'utiliser un script d'interface système (shell) comme mw-vagrant-prep pour préparer un répertoire lors d'une installation de MediaWiki-Vagrant.

Provisioning
You can debug the provisioning process by running

PHP
See Manual:How to debug#HHVM. But first work around.

You can debug PHP with Xdebug if you vagrant enable-role zend. Debugging in PHP is different from other client-side debugging. Your IDE listens for incoming connections, and when you access the server with a browser, a special header instructs PHP to connect to your IDE. See MediaWiki-Vagrant/Advanced usage for further information.

Chrome

 * For Chrome users, you should get XDebug Helper, and optionally Clear Cache, HTTP headers, and Mod Headers. Configure clear cache to automatically reload after clearing, and set up keyboard shortcuts (e.g. Ctrl+R for clear&reload, Ctrl+Shift+D to switch XDebugger on/off)

Firefox

 * Firefox users should check out easy Xdebug.
 * Install and configure an xdebug-compatible IDE on your machine (Eclipse, PhpStorm, Emacs, etc)
 * In IDE, start listening for the incoming debug connection
 * In IDE, set break point at the spot that interests you
 * Enable XDebug in the browser and navigate to your vagrant installation ( http://127.0.0.1:8080/... )

Fichiers de journalisation (log)
The mediawiki logs can be found in /vagrant/logs. There are log files for Apache in /var/log/apache2/, but it seems they are not written to. There is a log file for HHVM in /var/log/hhvm/. The PHP notices, warnings, errors, uncaught exceptions are logged by HHVM to the syslog which you can see in /var/log/syslog. The MySQL query log can be obtained by issuing SET GLOBAL general_log = 'ON'; in a client and then looking at /var/lib/mysql/*.log.

Running and debugging unit tests
To run the phpunit tests:

You can append path/to/tests/to/run.

Some tests may require running as the proper user to create lock files and such, hence this command runs as the "user"  that handles web requests.

Debugging phpunit tests is a little more complex. This method is a bit hacky, but can be used until debugging remote interpreter improves (e.g. in phpStorm 8 EAP). This workaround lets you run MediaWiki unit tests from the browser.
 * Download phpunit.phar file to the root of you vagrant directory.
 * Create a php file unittest.php</tt> in the root of the mediawiki</tt> directory. Do not commit this file to the repository. Paste the following code into it:


 * In the above file, change argv parameter to the name of your test file
 * Apache maps the root of the mediawiki directory to . So navigate to http://127.0.0.1:8080/w/unittest.php to run this file
 * Follow #Debugging instructions to attach your debugger

Pushing commits
If you're using MediaWiki-Vagrant for development you'll probably want to push some commits to MediaWiki core or an extension's repository using git review. By default, all remotes point to the  URLs. To avoid overriding this on a case by case basis, run:

$ git config --global url."ssh:// @gerrit.wikimedia.org:29418/".insteadOf "https://gerrit.wikimedia.org/r/p/"

You also need to have your ssh keys in.

Comment puis je faire pour ... ?

 * Check PHP version and settings
 * http://127.0.0.1:8080/info.php


 * Edit LocalSettings.php?
 * First, check that there is no role that already does what you need. If not, create a file in   directory. See README and 00-debug.php-example file.


 * Update MediaWiki code?
 * The easiest is to use  from the host.  Or, to just update the code without dependencies, you can use regular git ,  , etc. commands in   and   directories. You can run these commands on the virtual machine, but the file access will be faster on the host machine. MediaWiki-Vagrant pulls code from git master when you initially set up and/or add a role, but doesn't automatically update code after that.


 * Run MediaWiki PHP interpreter
 * ssh to vagrant and run . You might need to run it with


 * Run MediaWiki SQL interpreter
 * ssh to vagrant and run . You might need to run it with

''NN packages can be updated. NN updates are security updates.'' In vagrant ssh:
 * Update virtual machine software packages?
 * does not update system packages in the VM. When you connect with vagrant ssh the login message will inform that you:
 * to update all packages, enter
 * for "automatic installation of security (and other) upgrades", similar to labs instances, enter
 * to update to the same packages that are on production WMF servers... TODO


 * Customize Vagrant
 * You should never need to change Vagrantfile directly. There are several aspects of vagrant you can customize:
 * Core settings (git user, ports, ram, ip, port forwarding) can be customized via .settings.yaml file. See  and   for instructions.
 * Perform additional steps after Vagrantfile load by creating a file called Vagrantfile-extra.rb and placing it in the same folder as Vagrantfile - it will be automatically loaded. In case of conflict, values in the 'extra' file will supersede values in this file. See example in support/ directory.


 * Add custom Puppet code?
 * This is ideal if you want to work on your own MediaWiki site locally and let the MediaWiki-Vagrant install your dependencies for you. It's ideal if you have your own fork.  There is a distinction between a role and this use case. Roles are meant to be installed in any order and without breaking. If your fork needs different calls and get in trouble with roles, create your own class and call what you need, including roles.
 * To do so, place your custom puppet code in  with your own class, like so:

To apply your class, add it to the "classes" key in. You can create the file if it doesn't exist.

Then run  to apply the change via Puppet.


 * Update MediaWiki-Vagrant itself?
 * (For example, to use new roles.) In a terminal, change to the vagrant directory on the host computer and enter a regular git command such as . You will typically want to run   after updating to apply any new puppet changes to your virtual machine.


 * Run GUI applications on the virtual machine?
 * If you have an X server installed, SSH into the virtual machine using  to enable X forwarding. (Mac users should update to the latest version of XQuartz.)


 * As an alternative, you can run the virtual machine in GUI mode, which allows you to interact with the VM as though it had a physical display. To enable GUI mode, create a file called  in the root repository folder, with this as its content:


 * Save the file and run  followed by  . The virtual machine's display will appear in a window on your desktop.


 * <span id="Adjust_CPU"> Adjust the resources allocated to the VM?
 * If you'd like to allocate more or less CPU / RAM to the VM, see  for instructions.

Alternatively, you can do it by creating Vagrantfile-extra.rb (see support/ dir for an example):


 * Change the editor used for git commit messages?

Go to Special:NovaProxy, click "Add proxy" and enter a DNS hostname, say View your new wiki at " http:// /wiki/ "
 * Setup a custom hostname?

Create a local.yaml file in the /vagrant/puppet/hieradata directory. In it, add: Run.
 * Make the custom hostname point to homepage of my vagrant role instead of wiki homepage?


 * Run a branch of MediaWiki other than master?
 * Set the "" key in .  You can create the file if it doesn't exist.

This change has to be made BEFORE running vagrant up for the first time. If you decide you want to do it later, make the change, destroy your current VM with, delete your existing mediawiki checkout and finally build a new VM with.

Vagrant is designed to run with the master branch, and may not work perfectly, or at all with older versions of core and/or extensions.


 * Run MediaWiki under PHP5 (Zend PHP) rather than HHVM?
 * Visit the  vhost that MediaWiki-Vagrant provisions automatically. This Apache vhost runs the same configuration as the default   vhost but using PHP5 instead of HHVM.
 * To convert all wikis in your MediaWiki-Vagrant instance to PHP5:

Paramètres MediaWiki
As an alternative to managing all MediaWiki settings in a single, large LocalSettings.php file, consider grouping your configurations by component or theme, and creating a separate PHP file in  for each group. This makes it quite easy to keep your settings organized, to temporarily disable specific configurations, and to share settings with others. MediaWiki will automatically load any PHP files in  in lexical order. You can control the order in which your configurations are set by adopting the habit of adding a two-digit prefix to each file name.

For example:

<pre style="background-color: #efefef; border: 0; display: inline-block; font-family: Consolas, monaco, monospace; margin: 0.4em 0 1em; padding: 0.2em 0.6em;"> settings.d/   ├── 10-RunFirst.php ├── 20-SomeExtension.php └── 99-RunLast.php Note that the settings files in settings.d/puppet-managed</tt> are automatically created and destroyed in response to your Puppet configuration. Don't put your custom settings there, because Puppet will erase or override them. Keep your custom settings files in settings.d/</tt> instead.

Vagrant flags
vagrant config --list display a list of all current Vagrant flags.

After the initial, in your vagrant directory, you can then set one of the vagrant flags that appears in the config list, e.g. vagrant config nfs_shares no

Job queue
If you're testing something that needs to churn the job queue, you may need to increase the number of job runners. Currently this is not available through LocalSettings.php, but must be set in the config file for the job runner.


 * 1) Open
 * 2) Change the value for the ' ' key from   to the desired value (say,  )
 * 3) Re-provision with
 * 4) Beware this will be a difference from the git master in your code

See instructions above for adjusting CPU core count appropriately (highly recommended for CPU-bound task such as video transcoding).

Authoring roles
The virtual machine created by MediaWiki-Vagrant resembles Wikimedia's production environment in key respects, and it uses the same tool—Puppet—that Wikimedia's technical operations team uses to manage production servers and Wikimedia Labs instances. Puppet is a configuration management tool that provides a domain-specific language for expressing software configurations in a declarative fashion. Files containing Puppet code are called 'manifests'. When Puppet runs, it interprets the manifests you feed it and configures the machine accordingly. A Vagrant role is a set of Puppet manifests.

MediaWiki-Vagrant's Puppet codebase contains abstractions that make it easy to automate the configuration of MediaWiki extensions and related software. If you are a developer working on a software project that relates to MediaWiki, you are encouraged to submit a patch with a Puppet role for your project. Adding a Vagrant role for your project makes it easy for other developers to check out your work. Using a managed virtual machine as a development sandbox for your project reduces the chance of "works-on-my-machine" errors that often result from geographically remote developers working in incompatible environments.

The easiest way to get started with custom roles is to look at how existing roles are implemented in. These roles depend on Puppet modules in. The Puppet code is generally well-documented and contains examples that demonstrate its proper usage.

Some of the more useful puppet modules are:
 * mediawiki::extension: install and configure an extension (example)
 * mediawiki::import::text: create a documentation or test page on the wiki (example: declaration, page)
 * mediawiki::import::dump: import a wiki dump (example)
 * require_package: install a system package (example)
 * exec: execute a shell command (example)

Setting up labs instances
You can use MediaWiki-Vagrant in Labs to install MediaWiki on a Wikimedia Labs instance and enable  MediaWiki-Vagrant roles in it.

Bogues
If you spot a bug in MediaWiki-Vagrant, please report it. First, make sure the bug is not a known Vagrant or VirtualBox bug by searching the Vagrant issue tracker on GitHub and the VirtualBox bugtracker. If it is not, go ahead and submit the bug to Wikimedia Phabricator. Clearly describe the issue and include steps to reproduce, whenever possible.

Liens

 * Project page on Ohloh
 * MediaWiki-Vagrant on GitHub
 * Issue tracker on Phabricator
 * Labs-vagrant configure Wikimedia Labs instances based on MediaWiki-Vagrant roles
 * HHVM/Vagrant steps necessary to enable the hhvm role on older MediaWiki-Vagrant installs