Aller au contenu principal

Créer une VM de Windows Server avec Vagrant

· 4 minutes de lecture

Bonjour à tous, j'ai créé ce post pour expliquer comment nous pouvons créer une VM de serveur Windows en utilisant Vagrant avec quelques applications supplémentaires. Nous allons apprendre à installer tous les outils dont nous avons besoin pour créer notre VM de serveur. Nous aurons besoin de Vagrant, Chocolatey, Git, Hugo et VSCode.

Vagrant

Voyons maintenant comment nous pouvons en créer un selon nos besoins et nos envies.

Tout d'abord, la VM. Nous avons décidé d'opter pour un système d'exploitation Windows Server 2019 et pour ce faire, nous avons cherché une boîte Windows Server sur le site vagrants box. Sur le site, il suffit de taper, dans le champ de recherche, le type de VM que vous recherchez (Linux, Windows, etc). Dans notre cas, il suffit de taper "mcree/win2019" et vous le trouverez. Dans la page de la boîte, vous trouverez "Vagrantfile" et "New". Ce qui nous intéresse dans cet article, c'est le "Vagrantfile". Comme vous pouvez le voir dans la page de l'encadré, il y a la configuration initiale du Vagrantfile. Vous en aurez besoin pour créer (up) votre machine serveur virtuelle. C'est le début de notre Vagrantfile :

Vagrant.configure("2") do |config|
config.vm.box = "mcree/win2019"
config.vm.box_version = "1.0.1584095692"
end

Comme vous pouvez le voir, nous obtenons la boîte pour notre vm et sa version.

Maintenant, ajoutons le nom de notre vm et la quantité de mémoire (RAM) que nous voulons lui donner :

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

Maintenant que nous avons le nom de notre vm et la capacité de RAM, nous allons configurer le réseau :

wvm.vm.define "Windows Server 2019" do |web|
web.vm.hostname = "winserver19"
web.vm.network "public_network"
end

Ici, nous définissons le nom d'hôte du vm et le type de réseau que nous souhaitons donner au vm (public, privé, etc.).

Notez qu'il existe de multiples variantes de configuration de réseau, ce post ne vous montrera que la manière la plus basique de mettre votre vm en réseau ;

Et le fichier Vagrant devrait ressembler à quelque chose comme ceci maintenant :

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

wvm.vm.define "Windows Server 2019" do |web|
web.vm.hostname = "winserver19"
web.vm.network "public_network"
end
end

Il s'agit d'un fichier Vagrant très simple et facile (comme nous l'aimons) à configurer.

Mais nous voulons avoir quelques outils installés sur la machine virtuelle lorsque nous Up notre machine virtuelle. Pour ce faire, nous allons utiliser un terminal (shell).

Donc, nous devons ajouter au Vagrantfile le terminal :

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

SHELL

C'est le terminal qui va vous permettre de donner des commandes pour ajouter, supprimer, déplacer et un tas d'autres choses à la vm ;

Donc, nous allons installer Chocolatey (voir ci-dessous l'explication de ce qu'est Chocolatey et comment l'installer) et, en utilisant Chocolatey, nous allons installer Git, VSCode et Hugo ;

Notez que SHELL à la fin du terminal remplace la fin dans les autres configurations vues précédemment.

Chocolatey

Chocolatey est un module pour Windows permettant d'installer des paquets (outils) sur la machine. Par exemple, "choco install tool" est l'équivalent de "apt install tool" sur Ubuntu. Pour l'installer, vous devez donc copier-coller cette commande dans votre shell provisioner vagrantfile :

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

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

SHELL

Cette commande installera chocolatey et vous permettra d'utiliser "choco install" pour installer d'autres outils sur votre serveur Windows tels que Git ou VSCode.

Outils

Maintenant, vous devez installer les outils dont vous avez besoin et pour ce faire, vous allez utiliser Chocolatey ! Donc, ajoutez à votre shell vagranfile les commandes suivantes :

choco install git -y
choco install vscode -y
choco install hugo -y

Ces commandes installeront les outils respectifs, mais vous pouvez installer les outils dont vous avez besoin. La seule chose dont vous avez besoin est choco install "tool that you want" :) Notez, que le -y est pour répondre Oui aux questions posées par le processus d'installation ;

Donc, notre fichier Vagrant semble être complet ! Voyons donc à quoi il ressemble avec tout ce qui a été installé :

Vagrantfile

# -*- 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

wvm.vm.define "Windows Server 2019" do |web|
web.vm.hostname = "winserver19"
web.vm.network "public_network"
end

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

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

SHELL

end