feat(deploy): install silencieuse (dashboard) + MAJ GPO clients Léa + procédure Julien — 2026-07-06
Some checks failed
tests / Lint (ruff + black) (push) Failing after 1m58s
tests / Tests unitaires (sans GPU) (push) Failing after 2m8s
tests / Tests sécurité (critique) (push) Has been skipped

Deux canaux de déploiement des clients Léa, en s'appuyant sur l'installeur EXE
v1.0.2 existant (per-user, upgrade-safe, mode /VERYSILENT /CONFIG=).

- Route dashboard `GET /api/fleet/installer` (web_dashboard/app.py, insertion pure,
  125 lignes, 0 suppression) : sert un ZIP {EXE + install_silencieux.bat + enroll.txt
  (SERVER_URL/token injectés via _resolve_public_server_url) + LISEZMOI} pour un poste
  NEUF. L'EXE génère lui-même le machine_id → pas de pré-enregistrement (distinct de
  la voie ZIP download_agent_package). Tri EXE en semver (1.0.10 > 1.0.2). Testée e2e.
- deploy/installer/silent/ : lanceur d'install silencieuse + gabarit enroll + notice.
- deploy/gpo/Deploy-LeaUpdate.ps1 : MAJ upgrade-safe via GPO **logon script user-context**
  (install per-user invisible au contexte SYSTEM). Détection version = **DisplayVersion
  du registre HKCU** (primaire pour install EXE ; le config.txt EXE ne porte PAS la
  version — vérifié sur poste réel), fallback RPA_AGENT_VERSION (installs ZIP).
  Comparaison semver, idempotent, journalisation best-effort silencieuse, non bloquant
  à l'ouverture de session. Options -DryRun / -TargetVersionOverride / -LogShareOverride.
  **Validé sur poste réel .11 (Windows PowerShell 5.1)** : branche « déjà à jour » et
  branche « MAJ requise » (DryRun, 0 install), détection = 1.0.2.
- docs/PROCEDURE_DEPLOIEMENT_LEA_JULIEN.md : procédure (poste neuf / MAJ manuelle / GPO / rollback).
- EXE binaire jamais versionné (deploy/installer/releases/.gitignore).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Dom
2026-07-06 10:22:34 +02:00
parent f4bef1de37
commit 48b1fc2800
8 changed files with 547 additions and 0 deletions

View File

@@ -0,0 +1,73 @@
@echo off
chcp 65001 >nul 2>&1
setlocal enabledelayedexpansion
title Lea - Installation silencieuse (nouveau poste)
:: ============================================================
:: install_silencieux.bat
:: Installe Lea sur un NOUVEAU poste, sans interface graphique.
::
:: Pre-requis : ce script, l'installeur "Lea-Setup-v*.exe" et
:: "enroll.txt" (rempli) doivent etre dans le MEME dossier.
::
:: Installation PER-USER : aucun droit administrateur requis.
:: ============================================================
set "HERE=%~dp0"
set "ENROLL=%HERE%enroll.txt"
set "LOG=%TEMP%\Lea-install-silencieux.log"
echo.
echo ============================================================
echo Lea - Installation silencieuse (nouveau poste)
echo ============================================================
echo.
:: --- 1. Localiser l'installeur (Lea-Setup-v*.exe, version la plus recente) ---
set "EXE="
for /f "delims=" %%f in ('dir /b /o-n "%HERE%Lea-Setup-v*.exe" 2^>nul') do (
if not defined EXE set "EXE=%HERE%%%f"
)
if not defined EXE (
echo ERREUR : aucun "Lea-Setup-v*.exe" trouve dans ce dossier.
echo Placez ce script a cote de l'installeur Lea.
echo.
pause
exit /b 1
)
echo Installeur detecte : !EXE!
:: --- 2. Verifier enroll.txt ---
if not exist "%ENROLL%" (
echo ERREUR : "enroll.txt" introuvable a cote de ce script.
echo.
pause
exit /b 1
)
findstr /C:"CONFIGURE_ME" "%ENROLL%" >nul 2>&1
if not errorlevel 1 (
echo.
echo ATTENTION : "enroll.txt" contient encore des valeurs CONFIGURE_ME.
echo Ouvrez enroll.txt, renseignez SERVER_URL / API_TOKEN / USER_*,
echo enregistrez, puis relancez ce script.
echo.
pause
exit /b 1
)
:: --- 3. Installation silencieuse (per-user, pas d'admin) ---
echo Installation en cours (silencieuse, ~1-2 min)... ne fermez pas cette fenetre.
"!EXE!" /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /CONFIG="%ENROLL%" /LOG="%LOG%"
set "RC=!errorlevel!"
echo.
if "!RC!"=="0" (
echo Installation terminee - OK.
echo Lea est enrolle et pret. Journal : %LOG%
) else (
echo ERREUR : l'installation a echoue ^(code !RC!^).
echo Consultez le journal : %LOG%
)
echo.
pause
endlocal