System admin
📆 15 octobre 2025
VM Windows Server 2022 avec Vagrant et VirtualBox

Déployer une VM Windows Server 2022 avec Vagrant et VirtualBox

Par Marco F

Déployer une VM Windows Server 2022 avec Vagrant et VirtualBox

Ce billet marque le point de départ d’une série d’expérimentations autour de l’Infrastructure as Code dans mon lab local.

Objectif : déployer automatiquement une machine virtuelle Windows Server 2022 avec Vagrant et VirtualBox, sans aucune intervention graphique.

Toute l’infrastructure est décrite dans un seul fichier : le Vagrantfile.


1. Pourquoi Vagrant pour ce lab ?

Avant de basculer vers Terraform et Proxmox, Vagrant offre un terrain d’expérimentation local idéal.

  • Provisioning rapide en environnement local
  • Reproductibilité totale
  • Isolation du lab sans impacter l’infrastructure principale
  • Compatibilité immédiate avec Ansible via WinRM

L’objectif ici n’est pas de remplacer un hyperviseur de production, mais de créer une base reproductible pour tester l’automatisation Windows.


2. Principe Infrastructure as Code

L’approche classique consiste à :

  • Télécharger une ISO
  • Créer une VM manuellement
  • Installer Windows graphiquement
  • Configurer le réseau à la main

Cette méthode est non reproductible et dépendante d’actions humaines.

Avec Vagrant :

  • L’état souhaité est déclaré dans un fichier
  • Le déploiement devient déterministe
  • La VM peut être détruite et recréée à l’identique

3. Prérequis techniques

Vérifier les versions installées :

vboxmanage --version
vagrant --version

Vérifier la présence de la box Windows Server 2022 :

vagrant box list

Box utilisée : jborean93/WindowsServer2022 (virtualbox)


4. Initialisation du projet

mkdir -p ~/LabSpace/VMs/win_server_2022
cd ~/LabSpace/VMs/win_server_2022
vagrant init jborean93/WindowsServer2022

Le fichier Vagrantfile généré devient notre manifeste IaC local.


5. Configuration détaillée du Vagrantfile

Vagrant.configure("2") do |config|
config.vm.box = "jborean93/WindowsServer2022"

config.vm.provider "virtualbox" do |vb|
  vb.memory = "4096"
  vb.cpus = 2
  vb.name = "Win2022-Lab-Ansible"
end

config.vm.network "private_network", ip: "192.168.56.10"

config.vm.communicator = "winrm"
end

WinRM est l’équivalent Windows de SSH. Il permet l’administration distante et sera indispensable pour Ansible.

L’IP privée permet de garantir une connectivité stable et prévisible pour l’automatisation.


6. Déploiement

vagrant up --provider=virtualbox

Une fois terminé :

Machine booted and ready!
WinRM transport detected

7. Validation IaC : test WinRM

vagrant winrm -c "hostname"

Si la commande retourne le hostname, cela confirme que :

  • La VM est accessible
  • WinRM est fonctionnel
  • L’infrastructure est prête pour Ansible

Conclusion : une base reproductible

Cette première étape pose une fondation solide.

La VM Windows Server 2022 est désormais :

  • Déclarative
  • Reproductible
  • Automatisable

Prochaine étape : intégrer Ansible, exécuter des playbooks via WinRM, puis comparer cette approche avec Terraform.