302 lines
10 KiB
Markdown
302 lines
10 KiB
Markdown
---
|
||
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 5–7 (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)
|