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 :)