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

302 lines
10 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: "First Deployment (New Project)"
type: operation
sources:
- sources/archives/Premier_deploiement.md
related:
- operations/vm-installation.md
- operations/deployment-existing-app.md
- operations/custom-application-management.md
- operations/gna-services-license.md
- architecture/overview.md
- concepts/parameters.md
last_compiled: "2026-04-17"
---
# First Deployment (New Project)
## Overview
Procédure de **premier déploiement** d'un projet EasyWMS sur une VM de développement fraîchement préparée (cf. [vm-installation](vm-installation.md)). Déclinaison des étapes à suivre pour initialiser :
- Le fichier de configuration de déploiement **`DeployConfig.yaml`** (choix BDD, version WMS, modules, applications)
- Le dépôt GIT du projet (fichier de layout EasyS, paramètres uGNA)
- Le script de déploiement **`deploy_repository.ps1`** (script unifié qui remplace les anciens `deploy.ps1` + `commands.ps1`)
- La première **custom application** (cf. [custom-application-management](custom-application-management.md))
Cette procédure n'est exécutée qu'**une seule fois par projet**. Pour tous les déploiements ultérieurs (autre dev rejoignant le projet, redéploiement après modif), voir [deployment-existing-app](deployment-existing-app.md).
Source : Confluence EasyWMS France — *Premier déploiement* (v39, 07/08/2025).
## Étape 1 — `DeployConfig.yaml`
Le fichier **`build/DeployConfig.yaml`** du dépôt GIT du projet pilote le déploiement. S'il est absent, le télécharger et l'y placer. Champs critiques à vérifier :
### TenantName / TenantCode
```yaml
TenantName: MonNomProjet
TenantCode: MonCodeProjet
```
### DBEngine
Doit correspondre à l'engine défini dans **`C:\deploy\env.secrets.yaml`** de la VM.
```yaml
DBEngine: Oracle # SQLServer | MySQL | Oracle | PostgreSQL
```
### MAPSeed (version WMS)
Dernière version publiée sur **[mapdeploy.mecalux.com](https://msscc.mecalux.com/documentation/documentation/master/EN/ReleaseNotes.md)** :
```yaml
MAPSeed: 22.9.19.1
```
### License
```yaml
License: ENTERPRISE # PRO | ADVANCE | ENTERPRISE
```
### Warehouse (layout EasyS)
Chemin relatif au fichier de layout (typiquement `layout_config/`) :
```yaml
Warehouse: layout_config/MAPAB_layout.cfg2014
```
### Data (paramètres uGNA)
Chemin relatif aux fichiers de config WMS (typiquement `test/`) :
```yaml
Data: test
```
### StandardApplications
Les applications à installer — reprendre la liste `<ExtraApps>` du `responses.xml` du projet, en ne gardant que celles avec `Use="Yes"` :
```yaml
StandardApplications:
- SmartUI
```
### EnabledModules
Liste complète des modules à activer — reprendre la balise `<Modules>` du `responses.xml`, **sauf `EasyWMS`** (inclus par défaut).
> ⚠️ **Problème connu versions 24.xx.xx.xx** : l'étape *"Importing apps with AD..."* peut durer très longtemps et échouer avec une erreur `System.Management.Automation.RuntimeException`. Dans ce cas, ajouter **`ToggleService`** à la liste.
```yaml
EnabledModules:
- SmartUI
- AccountDirective
- Billing
- CashAndCarry
- Dashboard
- Deliveries
- Ecommerce
- GalileoFaults
- LaborManagement
- Manufacturing
- MarketPlace
- OwnerExtensions
- PalletShuttle
- Sage200c
- SageX3
- Slotting
- TPLPortal
- ValueAddedService
- YardManagement
- EDSService
- ExternalDevices
- GalileoDesigner
- Gateway
- GNA
- PrinterService
- PTLService
- PalletShuttleService
- VoicePicking
- ToggleService # Requis en version >= 24.xx
```
### Customs (application custom)
Laisser **vide pour ce premier déploiement** — renseigné à l'étape 10.
### Users
Laisser vide pour conserver uniquement l'utilisateur `mecalux` par défaut ; sinon :
```yaml
Users:
- UserName:
Password: UserPassword
Groups: SuperAdmin,Administrators,Managers,Operators
```
## Étape 2 — Déposer le fichier de layout EasyS
Placer le fichier de configuration entrepôt EasyS (ex : `MAPAB_layout.cfg2014`) dans le dossier **`layout_config/`** du dépôt GIT.
> ⚠️ Bien **commit et push** après dépôt — le script de déploiement clone le GIT.
## Étape 3 — Vérifier `env.secrets.yaml` sur la VM
Dans **`C:\deploy\env.secrets.yaml`** de la VM, vérifier que les paramètres BDD correspondent à la BDD de la VM :
| Paramètre | Valeur par défaut |
|-----------|-------------------|
| `Engine` | `Oracle` ou `PostgreSQL` |
| `Server` | `localhost/orcl` (Oracle) / `localhost` (PostgreSQL) |
| `Password` (toutes BDD) | `robmec` |
## Étape 4 — Déploiement complet (script unifié)
Ouvrir **PowerShell en administrateur** dans **`C:\deploy`** de la VM :
```powershell
# Sur Master (par défaut)
.\deploy_repository.ps1 NomDuProjetGit
# Sur une branche spécifique
.\deploy_repository.ps1 NomDuProjetGit Branche
```
Exemple :
```powershell
.\deploy_repository.ps1 1707_FRANCE_MA_PIECES_AUTOS_BRETAGNE
```
> D'après l'équipe Espagne, il devrait être possible de déployer n'importe quelle version depuis la **21.1.19.2** via ce script unifié.
### Cas d'erreurs classiques
- **VM non connectée à internet** → lancer Internet Explorer pour s'authentifier à Zscaler (VPN désactivé au bureau, actif en télétravail)
- **Git absent** sur la VM → installer depuis [git-scm.com/download/win](https://git-scm.com/download/win)
- **Autres erreurs** → voir documentation Confluence *Installation machine virtuelle de développement*, paragraphe "Deploy 1"
> ✅ Si aucune erreur : les étapes 5, 6, 7 sont à **sauter**. L'étape 8 (Tenants.xml) reste **obligatoire**.
## Étapes 57 (anciens scripts uniquement)
À n'exécuter que si le projet utilise les **anciens scripts** `deploy.ps1` + `commands.ps1` (pas `deploy_repository.ps1`).
### 5 — Deploy 1 (Complete)
```powershell
.\deploy.ps1 # choisir "1. Complete"
```
### 6 — Load (config entrepôt + paramètres uGNA)
```powershell
.\deploy.ps1 # choisir "2. Load"
```
Ce qui est chargé :
- Config entrepôt depuis `C:\deploy\Config`
- Paramètres uGNA depuis `C:\deploy\Data`
> Alternative : charger le layout via **EasyS → Transfert Data** vers la VM.
### 7 — Assignation utilisateur
```powershell
.\Commands\commands.ps1
```
Alternative SmartUI : **Organisation → Utilisateurs** → sélectionner `mecalux` → ajouter les sites autorisés.
## Étape 8 — Désactiver les instances en BDD (OBLIGATOIRE)
> ⚠️ **Sans cette modification, les instances ne fonctionnent pas.**
Dans **`C:\inetpub\wwwroot\ApplicationService\Tenants.xml`**, remplacer :
```xml
<processStore name="TENANT ProcessStore" providerName="Oracle.ManagedDataAccess.Client" />
```
par :
```xml
<processStore name="TENANT ProcessStore" providerName="InMemory" connectionString="MaxProcessInfoLogs=20;MaxProcessLogEntries=50"/>
```
Puis redémarrer l'application : `iisreset` ou recyclage du pool **ApplicationService**.
### Astuce Notepad++ (multi-tenant)
Activer le mode **Regular expression** dans `Replace` (`Ctrl+H`) :
- **Recherche** : `(<processStore name=")(.*)(ProcessStore.*$)`
- **Remplacement** : `<processStore name="\2ProcessStore" providerName="InMemory" connectionString="MaxProcessInfoLogs=20;MaxProcessLogEntries=50"/>`
Chaque occurrence est remplacée en conservant le nom de Tenant.
## Étape 9 — Créer l'application custom
Procéder à la création initiale de la custom app et son premier export sur GIT.
Voir [custom-application-management — Création](custom-application-management.md#creation).
## Étape 10 — Compléter `DeployConfig.yaml` avec le Custom
Une fois la custom app créée et exportée, renseigner la section `Customs` :
```yaml
Customs:
- NomApplication: chemin/du/dossier/GIT/de/lapplication
```
Exemple :
```yaml
Customs:
- CustomApplication: source/CustomApplication
```
Désormais, chaque déploiement ultérieur (`deploy_repository.ps1`) reprendra automatiquement la custom app depuis le GIT.
## Parameters (DeployConfig.yaml)
| Clé | Type | Rôle |
|-----|------|------|
| `TenantName` / `TenantCode` | string | Identifiant du tenant EasyWMS |
| `DBEngine` | enum | `Oracle` / `PostgreSQL` / `SQLServer` / `MySQL` — doit matcher `env.secrets.yaml` |
| `MAPSeed` | string (version) | Version WMS à déployer depuis mapdeploy |
| `License` | enum | `PRO` / `ADVANCE` / `ENTERPRISE` |
| `Warehouse` | path | Chemin relatif layout EasyS (`.cfg2014`) |
| `Data` | path | Chemin relatif dossier uGNA |
| `StandardApplications` | list | Applications à installer (miroir `<ExtraApps Use="Yes">`) |
| `EnabledModules` | list | Modules activés (miroir `<Modules>` sans `EasyWMS`) |
| `Customs` | list | Apps custom à importer (renseigné étape 10) |
| `Users` | list | Users additionnels (sinon `mecalux` seul) |
## Common errors
- **`RuntimeException` pendant "Importing apps with AD..."** sur versions 24.xx.xx.xx → ajouter **`ToggleService`** dans `EnabledModules`.
- **BDD refuse la connexion pendant le deploy** → divergence entre `DBEngine` du `DeployConfig.yaml` et l'engine du template VM. Vérifier `env.secrets.yaml`.
- **Deploy OK mais instances WMS inactives** → étape 8 (Tenants.xml → `InMemory`) **non exécutée**. Étape obligatoire, même si tout semble fonctionner.
- **`License` non accepté** → la VM fonctionne 7 jours ; au-delà, demander une licence projet (cf. [gna-services-license](gna-services-license.md#license)).
- **Script ne trouve pas le projet GIT** → vérifier nom exact du repo (sensible à la casse) et connectivité Zscaler/VPN.
- **Plusieurs devs → différents `TenantName`** → pas un bug en soi, mais perturbe les merges. Convenir d'un `TenantName` unique par projet.
## Related
- [VM Installation](vm-installation.md) — pré-requis : VM Hyper-V créée et validée
- [Deploy Existing Application](deployment-existing-app.md) — déploiements ultérieurs (autres devs, redéploiement, changement de branche)
- [Deploy Specific Commit](deployment-specific-commit.md) — déployer un commit figé plutôt que le HEAD d'une branche
- [Custom Application Management](custom-application-management.md) — étape 9 (création initiale de la custom app)
- [Git Workflow](git-workflow.md) — stratégie de branches pour le projet
- [GNA, Services & License](gna-services-license.md) — installation des services GNA, Printer, License WMS après déploiement
- [System Architecture Overview](../architecture/overview.md) — stack cible (IIS, BDD, services)
- [Parameters](../concepts/parameters.md) — paramètres WMS chargés via uGNA (étape 6)