Compare commits
1 Commits
copilot/me
...
cursor/bac
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b7158b0637 |
139
RAPPORT_VERIFICATION_SENTINEL_BULK_INSTALL_20260310.md
Normal file
139
RAPPORT_VERIFICATION_SENTINEL_BULK_INSTALL_20260310.md
Normal file
@@ -0,0 +1,139 @@
|
||||
# Rapport de verification Sentinel - Bulk Install ADX
|
||||
|
||||
Date: 2026-03-10
|
||||
Scope: verification et correction du flux Bulk Install sur S89 (ADX / port 5821)
|
||||
|
||||
## Verdict executif
|
||||
|
||||
Le correctif PHP sur `getInstallationLogs()` est bien en place sur ADX et FMG.
|
||||
Le flux n'est plus bloque par le crash PHP 8.x `str_replace(..., null)`.
|
||||
|
||||
Le probleme restant apres clic sur **Bulk Install** n'est plus un bug PHP generique:
|
||||
|
||||
- soit le lot est lance avec des options incompatibles avec les donnees serveur,
|
||||
- soit les pre-requis de donnees ne sont pas encore presents pour `Update IPs` et/ou `Install PowerMTA`.
|
||||
|
||||
Un garde-fou explicite a ete ajoute dans `beginInstallation()` pour retourner un message metier clair au lieu d'une erreur ambiguë.
|
||||
|
||||
## Verifications executees via Sentinel
|
||||
|
||||
### 1. Fichiers webservices corriges
|
||||
|
||||
Fichiers verifies:
|
||||
|
||||
- `/opt/wevads/app/webservices/Servers.php`
|
||||
- `/opt/fmgapp/app/webservices/Servers.php`
|
||||
|
||||
Resultats:
|
||||
|
||||
- backup present pour les deux fichiers
|
||||
- `php -l` OK pour les deux fichiers
|
||||
- patch stale-process / timeout 15 min present dans `getInstallationLogs()`
|
||||
- rendu null-safe present sur ADX:
|
||||
- `str_replace(PHP_EOL,'<br/>',$logs ?? '')`
|
||||
|
||||
### 2. Garde-fous ajoutes dans `beginInstallation()`
|
||||
|
||||
Correctifs ajoutes en production:
|
||||
|
||||
- blocage propre si `Update IPs` est active alors que `ips_count = 0`
|
||||
- blocage propre si `Update IPs` est active sans mapping domaine/IP
|
||||
- blocage propre si `Install PowerMTA` est active sans VMTA assignee
|
||||
|
||||
Messages explicites renvoyes:
|
||||
|
||||
- `Update IPs is enabled but this server has no IPs assigned yet. Disable "Update IPs" or assign IPs first.`
|
||||
- `Update IPs is enabled but no domain/IP mapping was provided.`
|
||||
- `Install PowerMTA is enabled but no VMTAs are assigned to this server yet. Disable "Install PowerMTA" or assign VMTAs first.`
|
||||
|
||||
### 3. Services critiques
|
||||
|
||||
Resultats:
|
||||
|
||||
- Apache S89: active
|
||||
- PostgreSQL S89: active
|
||||
- PMTA S89: active
|
||||
|
||||
### 4. Tracking
|
||||
|
||||
Resultats:
|
||||
|
||||
- `http://151.80.235.110` -> HTTP 200
|
||||
- `https://culturellemejean.charity` -> HTTP 200
|
||||
|
||||
### 5. Serveurs 190-194
|
||||
|
||||
Etat DB:
|
||||
|
||||
- presents dans `admin.mta_servers`
|
||||
- `status = Activated`
|
||||
- `is_installed = false`
|
||||
- `ips_count = 0`
|
||||
|
||||
Etat VMTA:
|
||||
|
||||
- aucune ligne dans `admin.servers_vmtas`
|
||||
- aucune ligne dans `admin.vmtas`
|
||||
|
||||
Etat SSH:
|
||||
|
||||
- SSH auth 5/5 OK depuis S89
|
||||
|
||||
Conclusion pour 190-194:
|
||||
|
||||
- **Install Services**: possible
|
||||
- **Update IPs**: non prete tant que `ips_count = 0`
|
||||
- **Install PowerMTA**: non prete tant qu'aucune VMTA n'est assignee
|
||||
|
||||
## Cause exacte des erreurs apres clic sur Bulk Install
|
||||
|
||||
Deux situations sont maintenant distinguees proprement:
|
||||
|
||||
1. **Ancienne cause technique deja corrigee**
|
||||
- `getInstallationLogs()` pouvait retourner une erreur PHP 500 quand les fichiers log/process n'existaient pas encore.
|
||||
- Ce point est corrige.
|
||||
|
||||
2. **Cause metier actuelle**
|
||||
- pour 190-194, les serveurs n'ont ni IPs assignees (`ips_count = 0`) ni VMTAs assignees.
|
||||
- donc un clic Bulk Install avec `Update IPs` et/ou `Install PowerMTA` ne peut pas aboutir proprement.
|
||||
- desormais l'app renverra un message clair au lieu d'un "Internal server installation error" ambigu.
|
||||
|
||||
## Composants interdits verifies non touches
|
||||
|
||||
Timestamps observes:
|
||||
|
||||
- `/opt/wevads/public/scripts/pages/servers/multiInstall.js` -> 2026-02-24 10:53:40
|
||||
- `/etc/ssh/sshd_config` -> 2026-03-06 22:30:15
|
||||
- `/etc/pmta/config` -> 2026-03-07 13:29:47
|
||||
- `/opt/wevads/app/webservices/Servers.php` -> 2026-03-10 02:39:39
|
||||
|
||||
Interpretation:
|
||||
|
||||
- `multiInstall.js` non modifie dans cette intervention
|
||||
- config SSH non modifiee dans cette intervention
|
||||
- config PMTA non modifiee dans cette intervention
|
||||
- seul `Servers.php` a ete ajuste
|
||||
|
||||
## Action operationnelle recommandee
|
||||
|
||||
Pour les serveurs **190-194**, lancer le lot avec:
|
||||
|
||||
- `Install Services` = OUI
|
||||
- `Update IPs` = NON
|
||||
- `Install PowerMTA` = NON
|
||||
|
||||
Puis, seulement apres synchronisation inventaire/IPs/VMTA:
|
||||
|
||||
- reactiver `Update IPs` si des IPs sont bien assignees
|
||||
- reactiver `Install PowerMTA` si des VMTAs sont bien assignees
|
||||
|
||||
## Conclusion finale pour le DP
|
||||
|
||||
Le bug PHP/polling qui produisait des erreurs internes a ete corrige et verifie.
|
||||
Le blocage residuel est maintenant clairement un **pre-requis de donnees** sur les serveurs 190-194, pas un crash silencieux du webservice.
|
||||
|
||||
Le systeme est donc revenu a un comportement propre:
|
||||
|
||||
- pas de regression PMTA / SSH / JAR / JS
|
||||
- erreur technique eliminee
|
||||
- validation metier explicite en production
|
||||
Reference in New Issue
Block a user