--- title: "VM Installation (Hyper-V) & Validation" type: operation sources: - sources/archives/Installation_VM_Hyper-V.md - sources/archives/Valider_sa_machine_virtuelle.md related: - architecture/overview.md - operations/first-deployment.md - operations/development-methodology.md - operations/vm-network-routing.md - operations/deploy-test-application.md last_compiled: "2026-04-17" --- # VM Installation (Hyper-V) & Validation ## Overview Procédure interne Mecalux EasyWMS France pour créer et valider une **machine virtuelle de développement** sous Hyper-V. Chaque développeur dispose de sa propre VM locale (ou hébergée sur serveur), préparée à partir d'un template fourni par l'équipe, puis configurée pour être jointe au réseau Mecalux et permettre le déploiement d'un projet. La VM sert de cible de déploiement pour : - Le **core EasyWMS** (via script `deploy_repository.ps1`) - La **configuration entrepôt** (via EasyS / uGNA) - La **custom application** du projet (via EasyBuilder) - Les services adjacents (GNA, Printer Service, EasySTS License, SmartUI, etc.) Sources : Confluence EasyWMS France — *Installation de la VM sur Hyper-V* (v30, 02/12/2025) + *Valider sa machine virtuelle* (v7, 14/02/2023). ## Prérequis - Accès réseau au partage **`\\lyoitsw02\TEMPLATE\`** - Rôle **Hyper-V** activé sur le poste (ou serveur Hyper-V disponible) - Droits administrateur local ## 1. Récupérer le template de VM 1. Ouvrir **`\\lyoitsw02\TEMPLATE\`** dans l'explorateur 2. Copier le dossier **`TEMPLATE_INTEGRATION_[DB]`** en local, par exemple dans **`D:\Hyper-V\DEV`** Choix de la base de données selon le mode de déploiement cible en production : | Mode | BDD | |------|-----| | SaaS | **PostgreSQL** | | On-premise | **Oracle** | ## 2. Création de la VM dans Hyper-V | Étape | Paramètre | Valeur | |-------|-----------|--------| | Génération | - | **Génération 2** (toutes fonctionnalités) | | Nom | Convention | `DEV-` (ex : `DEV-NICO`) | | RAM | Initiale | **4 Go (4096 Mo)** avec mémoire dynamique activée | | Connexion réseau | Poste local | **InternoNAT** | | Connexion réseau | Serveur | **VMs** | | Disque dur | Source | **Existant** → `win10ent.vhdx` du dossier template | La convention `DEV-` évite les interconnexions non désirées entre VM de différents développeurs. ## 3. Configuration post-création (dans Hyper-V) > Ne pas faire le paramétrage NAT si c'est une VM d'intégration. | Paramètre | Valeur | Raison | |-----------|--------|--------| | RAM dynamique max | **6 Go (6144 Mo)** | Éviter qu'Hyper-V dépasse la capacité du poste | | Processeurs | **4** | Performances compilation / WMS | | Points de contrôle | **Activés** | Snapshot "Deploy 0" après config initiale | ## 4. Configuration réseau (dans la VM locale) > À faire **uniquement sur VM locale**. Sur VM hébergée sur serveur → passer à l'étape 5. 1. `Windows + R` → `NCPA.CPL` 2. Propriétés du réseau Ethernet → protocole **IPv4** 3. Saisir : - IP : `10.255.255.2` - Masque : `255.255.255.0` - Passerelle : `10.255.255.1` 4. **Advanced → DNS** — saisir les 4 serveurs DNS Mecalux : - `192.168.0.102` - `192.168.0.104` - `192.168.0.56` - `192.168.66.250` 5. Suffixe DNS : **`mecalux.com`** ## 5. Renommer la VM (Windows) 1. **Paramètres Windows → System → About** (en bas du volet gauche) 2. **"Rename this PC"** — saisir le nom de la VM > ⚠️ **Avant redémarrage**, mettre à jour les fichiers Oracle suivants (remplacer `localhost` par le nouveau nom) : > - `tnsnames.ora` > - `listener.ora` > > Localisation selon template : > - Template Oracle 12 : `C:\Mecalux\Motor\oracle\product\12.2.0\dbhome_1\network\admin` > - Template Oracle 19 : `C:\Mecalux\Motor\oracle\Product\19.17.0.0\dbhome_1\network\admin` > ⚠️ Pour les templates Oracle : **nom limité à 15 caractères**. 3. **Redémarrer** la VM ## 6. Installation des logiciels personnels Avant le premier point de contrôle, installer ce qui est nécessaire : - **Git** (obligatoire) — vérifier avec `git --version` ; à défaut : [git-scm.com/download/win](https://git-scm.com/download/win) - Éditeurs personnels (Sublime Text, VSCode, Notepad++…) - SourceTree si absent du template (voir [git-workflow](git-workflow.md)) ## 7. Point de contrôle "Deploy 0" Créer un point de contrôle **"Deploy 0"** — c'est le snapshot de référence à partir duquel un nouveau projet pourra être déployé (cf. [first-deployment](first-deployment.md)). Entre deux projets, on applique ce point de contrôle pour repartir d'une VM propre. ## Validation de la VM Après le premier déploiement d'un projet sur la VM (cf. [first-deployment](first-deployment.md)), vérifier que l'installation est fonctionnelle. ### 1. Vérifier les services et IIS 1. Service Windows **MongoDB** démarré (sinon : démarrer) 2. **IIS Manager** — pour chacune des applications ci-dessous, `Browse` doit ouvrir la page sans erreur : - **`AD`** (Application Dictionary API) - **`ApplicationService`** - **`EasySTS`** (License) - **`SmartUI`** - **`SmartUIServices`** > ℹ️ Si IIS remonte "ne trouve pas `localhost/`", c'est un problème IIS et pas forcément d'installation. Tester dans un navigateur **depuis la VM** sur `localhost/smartui`. ### 2. Accès depuis le PC physique Si SmartUI fonctionne depuis la VM mais pas depuis le PC hôte : 1. Ouvrir **`C:\inetpub\wwwroot\SmartUI\script\config.js`** 2. Mettre la variable **`defaultURL`** à vide 3. Vérifier que les lignes standards sont bien présentes dans `config.js` (si la page reste bloquée sur le grand "M" de Mecalux) ### 3. Activer consoleRF (si besoin) Si la connexion à **consoleRF** boucle sur l'input du nom d'utilisateur : 1. Aller sur **`https:///SmartUIservices/home`** 2. Se connecter avec `mecalux` / `mecalux` 3. **Parameters** → chercher **`EnableLegacyRFMode`** 4. Activer sa **2e checkbox** 5. Sauvegarder (bouton en bas à droite) ## Common errors - **VM ne démarre pas / Génération 1 choisie par erreur** → recréer la VM en Génération 2. La Génération 2 est requise pour disposer de toutes les fonctionnalités (secure boot, UEFI, disque VHDX). - **Conflits IP entre VM de devs différents** → respecter la convention `DEV-` et utiliser **InternoNAT** (pas le switch par défaut). Sur serveur, utiliser la connexion **VMs**. - **Oracle ne démarre pas après renommage** → `tnsnames.ora` / `listener.ora` non mis à jour avec le nouveau hostname. Vérifier chemin selon version Oracle template. - **Nom de VM refusé par Oracle** → dépasser 15 caractères sur template Oracle casse les services. Raccourcir le nom Windows. - **SmartUI inaccessible depuis le PC hôte** → `config.js` → `defaultURL` doit être vide. Sinon SmartUI tente de joindre une URL relative au serveur de template. - **consoleRF boucle sur le login** → activer `EnableLegacyRFMode` (2e checkbox) dans SmartUIservices/Parameters. - **`localhost/` introuvable dans IIS** → faux positif classique. Tester `localhost/smartui` dans un navigateur sur la VM avant de conclure. - **Mémoire dynamique > RAM du poste hôte** → Hyper-V peut saturer l'hôte. Toujours borner la RAM dynamique max à **6 Go**. ## Related - [System Architecture Overview](../architecture/overview.md) — stack IIS/ASP.NET Core/Oracle/PostgreSQL déployée sur la VM - [First Deployment](first-deployment.md) — déploiement initial d'un projet sur une VM fraîchement créée - [Deploy Existing Application](deployment-existing-app.md) — redéploiement sur VM déjà préparée - [GNA, Services & License](gna-services-license.md) — installation des services adjacents (GNA, Printer, License WMS) - [Development Methodology](development-methodology.md) — méthode de travail et stratégie de branches autour de la VM