màj wiki avec retour MES lot-5 AD
This commit is contained in:
@@ -0,0 +1,301 @@
|
||||
---
|
||||
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)
|
||||
Reference in New Issue
Block a user