Aller au contenu principal

Vagrant Plugins

· 5 minutes de lecture

Bonjour à tous, J'ai créé ce post pour expliquer ce qu'est un plugin sur Vagrant, comment les installer et les utiliser correctement dans notre fichier vagrant ; Ce post sera mis à jour au fur et à mesure que je recevrai plus d'informations sur d'autres plugins.

Pour commencer, regardons un simple vagrantfile contenant une boîte Windows Server 2019 :

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|

config.vm.box = "mcree/win2019"
config.vm.box_version = "1.0.1584095692"

config.vm.provider "virtualbox" do |v|
v.name = "Windows Server 2019"
v.memory = "2048"
end

config.vm.provision "shell", inline: <<-SHELL

SHELL

Ceci est juste pour vous donner un aperçu d'un fichier vagrant très simple contenant juste la boîte, le nom du vm, la mémoire RAM et un terminal shell prêt à fonctionner.

C'est parti !

Reload

A quoi sert la recharge ?

Eh bien, utiliser reload dans votre fichier vagrant revient à faire un reboot de votre machine ;

Donc, mettons cela dans le contexte ;

Disons que nous avons installé Chocolatey et que nous voulons l'utiliser pour installer git.

C'est facile, mais nous ne pouvons pas le faire tout de suite parce que, comme la machine virtuelle n'a pas été rechargée (redémarrée), elle ne peut pas prendre en compte la modification effectuée précédemment ;

Donc, pour résoudre ce problème, nous devons ajouter un reload provisioner à notre vagrantfile !

config.vm.provision :reload

La commande ci-dessus est ce que nous devons ajouter à notre fichier vagrant mais nous ne pouvons pas l'utiliser si elle n'est pas installée.

Donc, pour installer le porvisioner reload, ouvrez un terminal Powershell et tapez :

vagrant plugin install vagrant-reload

Ceci va installer le plugin qui vous permettra d'utiliser le reload provisioner sur notre vagrantfile ;

Vous vous souvenez de notre simple fichier vagrant ? Voyons à quoi ressemble le fichier vagrant avec l'installation de Chocolatey :

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|

config.vm.box = "mcree/win2019"
config.vm.box_version = "1.0.1584095692"

config.vm.provider "virtualbox" do |v|
v.name = "Windows Server 2019"
v.memory = "2048"
end

config.vm.provision "shell", inline: <<-SHELL

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

SHELL

Dans notre fichier vagrant ci-dessus, nous installons Chocolatey. Mais, rappelez-vous, nous voulons l'utiliser pour installer nos outils et sans recharger le vm cela ne sera pas possible !

Ce que nous allons faire, c'est recharger la machine après avoir installé Chocolatey et après le rechargement, nous allons ouvrir un nouveau terminal Shell provisioner afin d'installer Git en utilisant Chocolatey ;

Jetons un coup d'oeil à notre fichier vagrant et voyons comment tout cela fonctionne :

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|

config.vm.box = "mcree/win2019"
config.vm.box_version = "1.0.1584095692"

config.vm.provider "virtualbox" do |v|
v.name = "Windows Server 2019"
v.memory = "2048"
end

config.vm.provision "shell", inline: <<-SHELL

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

SHELL

config.vm.provision :reload

config.vm.provision "shell", inline: <<-SHELL

choco install git -y

SHELL

Super ! Nous avons réussi l'installation du plugin et le rechargement de notre vm !

Disk Size

Un autre plugin utile est le Disk Size !

Ce plugin nous permettra de gérer la taille du disque de notre vm (tous ceux qui utilisent Vagrant savent que c'est une question importante :) ).

Comme vu précédemment, nous devons d'abord installer le plugin directement sur notre machine afin de pouvoir l'utiliser dans notre fichier vagrant.

Donc, copiez-collez ce qui suit :

vagrant plugin install vagrant-disksize

Voyons ce que ça donne :

config.disksize.size = '40GB'

Comme vous pouvez le voir, je veux avoir un disque de 40 Go. Mais où le placer ? Jetons un coup d'oeil à un fichier vagrant de base :

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|

config.vm.box = "mcree/win2019"
config.vm.box_version = "1.0.1584095692"

config.vm.provider "virtualbox" do |v|
v.name = "Windows Server 2019"
v.memory = "2048"
end

Vagrantfile très simple et basique mais il manque quelque chose ! Où est la taille du disque ?

Eh bien, puisque c'est une partie de la configuration du vm, nous allons la placer juste après la boîte du vm :

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|

config.vm.box = "mcree/win2019"
config.vm.box_version = "1.0.1584095692"
wvm.disksize.size = "40GB"

config.vm.provider "virtualbox" do |v|
v.name = "Windows Server 2019"
v.memory = "2048"
end

Et voilà ! Vous pouvez maintenant créer des vm's avec la taille de disque que vous souhaitez :)

NOTE : Si vous démarrez votre vm et voyez que votre vm windows n'a pas la taille de disque que vous avez attribué et n'a probablement que jusqu'à 20gb de taille de disque.

Le reste n'est pas attribué à la bonne partition. Pour corriger cela nous allons taper la commande suivante dans un Powershell à l'intérieur de la VM : (n'oubliez pas à la fin de la ligne de commande d'ajouter vos GB, dans mon cas j'ai donné 40gb donc je vais mettre 39 à la fin de la commande)

Resize-Partition -DriveLetter C -Size 39gb

A bientôt sur le prochain post :)