Files
2026-05-20 09:41:27 +02:00

171 lines
7.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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-<PRENOM>` (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-<PRENOM>` é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/<service>`", 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://<votre_vm>/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-<PRENOM>` 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/<service>` 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