RousselTMLEARNING

Automatisation

Les plugins Vagrant : étendre providers, provisioners et commandes

Comprendre le système de plugins de Vagrant : ce qu'un plugin peut ajouter (provider, provisioner, commande, capacité), installer et gérer les plugins, et les plugins les plus utiles.

1. Le système de plugins #

Vagrant est extensible.

Principe #

Vagrant fournit un cœur (lecture du Vagrantfile, gestion des boxes, cycle de vie) et délègue le reste à des composants : les providers (VirtualBox, Hyper-V, Docker sont intégrés) et les provisioners (shell, file, Ansible, Docker…). Les plugins, écrits en Ruby et distribués comme des gems, ajoutent de nouveaux composants.

Points d'extension de Vagrant
Un même plugin peut ajouter plusieurs composants.

2. Gérer les plugins #

Installer, mettre à jour, déclarer par projet.

Commandes #

vagrant plugin list
vagrant plugin install vagrant-libvirt
vagrant plugin update
vagrant plugin uninstall vagrant-vbguest
vagrant plugin expunge --reinstall      # réparer après une mise à jour de Vagrant

Déclarer les plugins requis par le projet #

Vagrant.configure("2") do |config|
  config.vagrant.plugins = ["vagrant-hostmanager", "vagrant-disksize"]   # installés au besoin à vagrant up
  config.hostmanager.enabled = true
  config.hostmanager.manage_host = true
end
Bonne Pratique : Déclarez les plugins dans le Vagrantfile : un nouveau membre de l'équipe obtient le même environnement sans installation manuelle.

3. Les plugins utiles #

Une sélection.

Sélection #

PluginTypeUsage
vagrant-libvirtProviderMachines KVM sous Linux, plus performantes que VirtualBox
vagrant-hostmanagerCapacitéMet à jour /etc/hosts de l'hôte et des machines (noms au lieu d'IP)
vagrant-disksizeCapacitéAgrandit le disque d'une box VirtualBox
vagrant-reloadProvisionerRedémarre la machine au milieu du provisioning (après une mise à jour du noyau)
vagrant-scpCommandeCopie de fichiers entre hôte et machine
vagrant-shareCommandePartage d'un environnement à distance (voir l'article suivant)
Erreur Courante : Les plugins tiers ne suivent pas toujours les nouvelles versions de Vagrant. Fixez la version de Vagrant de l'équipe et testez les mises à jour avant de les généraliser.

Articles liés

Vagrant : vue d'ensemble et vocabulaire (box, provider, provisioner, Vagrantfile)

Les notions indispensables pour suivre la formation Vagrant : à quoi sert Vagrant, le cycle de vie d'un envir…

Vagrant multi-machines : déployer un cluster Docker Swarm prêt à l'emploi

Construire avec un seul Vagrantfile un cluster Docker Swarm de trois nœuds (un manager, deux workers) dont la…

Partager un environnement Vagrant : ngrok et le plugin vagrant-share

Rendre une application qui tourne dans une machine Vagrant accessible à un collègue ou un client : redirectio…

Pour aller plus loin

Soutenir

♥ SOUTENIR

Soutenez RousselTM Learning

Les formations, articles, TP et attestations restent gratuits et sans publicité intrusive. Une contribution libre, du montant de votre choix, finance l’hébergement, les environnements de TP et l’écriture de nouveaux contenus.

Contribuer avec PayPal Montant libre · carte bancaire ou compte PayPalEn savoir plus
QR code PayPal
Ou scannez ce QR code avec votre téléphone

Merci, chaque contribution compte !