-
Notifications
You must be signed in to change notification settings - Fork 1
fr_Troubleshooting
🇬🇧 This page is also available in English: Troubleshooting
Problèmes courants rencontrés lors du déploiement et de l'exploitation de VIVO sur Azure Marketplace.
Lancez d'abord le diagnostic automatisé. La commande
make diagvérifie tous les services, les règles de pare-feu, le certificat TLS, Solr, le point de terminaison SPARQL et les journaux en une seule passe depuis votre poste de travail. → Voir fr_Post-Deployment-Verification#diagnostic-automatisé pour la mise en place et l'utilisation.
Symptôme :
VIVO_LANGUAGES: unbound variable
cloud-final.service: Failed
Cause : La VM a été créée en dehors du modèle de déploiement Marketplace — les paramètres de configuration requis n'ont jamais été injectés.
Correction : Supprimez la VM et redéployez depuis la page de l'offre Azure Marketplace en utilisant le modèle de déploiement standard.
Symptôme :
Permissions 0777 for 'key.pem' are too open.
bad permissions: ignore key
Cause : Le fichier de clé se trouve sur un système de fichiers Windows/NTFS (ex. : /mnt/c/...). La commande chmod n'y a aucun effet.
Correction :
cp /mnt/c/Users/<VotreNom>/Downloads/your-key.pem ~/.ssh/
chmod 600 ~/.ssh/your-key.pem
ssh -i ~/.ssh/your-key.pem azureuser@<public-ip>Symptôme :
"code": "OperationNotAllowed",
"message": "The specified disk size 64 GB is less than the size of the corresponding disk in the VM image: 256 GB."Cause : Le modèle de déploiement d'une version précédente de l'offre définissait une taille de disque inférieure à celle requise par l'image. Ce problème a été corrigé.
Correction : Redéployez en utilisant la version actuelle de l'offre depuis Azure Marketplace.
Symptôme :
"code": "InvalidParameter",
"target": "linuxConfiguration.ssh.publicKeys.path"Cause : adminUsername a été laissé vide, produisant le chemin /home//.ssh/authorized_keys.
Correction : Assurez-vous que adminUsername est renseigné (valeur par défaut : azureuser).
Cause : Les paramètres de déploiement (vivoNamespace, vivoAdminEmail) ont été laissés à leurs valeurs par défaut.
Correction : Redéployez avec les valeurs de votre institution, ou mettez à jour manuellement runtime.properties. Voir fr_Configuring-VIVO.
Symptôme : Firefox/Chrome affiche « Risque de sécurité potentiel » ou « Votre connexion n'est pas privée » pour le FQDN.
Cause : certbot n'a pas réussi à obtenir un certificat Let's Encrypt lors du premier démarrage.
Diagnostic :
sudo grep -i certbot /var/log/vivo-first-boot.log
sudo cat /var/log/letsencrypt/letsencrypt.log | tail -30Correction : Exécutez certbot manuellement — voir fr_HTTPS-TLS-Certificate.
systemctl status tomcat solr nginx
sudo journalctl -u tomcat --no-pager -n 50
sudo tail -100 /opt/tomcat/logs/catalina.outSymptôme :
La carte des compétences VIVO à /vis/capabilitymap charge son cadre mais n'affiche aucun nœud, même après le chargement des données d'exemple et avec plus de 400 documents dans Solr. La console du navigateur affiche :
La ressource à l'adresse /visualizationAjax... a été bloquée en raison d'un type MIME
(« text/html ») incorrect (X-Content-Type-Options: nosniff)
Cause :
L'endpoint /visualizationAjax de VIVO retourne Content-Type: text/html pour toutes les réponses, y compris les réponses JSONP (dont le corps est du JavaScript de la forme ipretResults({...})). Nginx applique X-Content-Type-Options: nosniff de manière globale. Les navigateurs respectent cette directive et bloquent l'exécution du rappel JSONP, ce qui rend la carte vide.
Étape 1 — Vérifier que les données sont présentes côté serveur
Avant de corriger nginx, confirmez que le backend retourne des données :
curl -sk "https://<fqdn>/visualizationAjax?vis=capabilitymap&query=Rhetoric&callback=ipretResults&noCacheIE=1" | head -c 200Résultat attendu (JSONP) :
ipretResults({"researchers":[...], "researchAreas":[...]})
Si la sortie est du HTML vide, les données d'exemple n'ont pas été chargées — consultez fr_Loading-Sample-Data.
Étape 2 — Vérifier l'en-tête Content-Type
curl -sk -I "https://<fqdn>/visualizationAjax?vis=capabilitymap&query=Rhetoric&callback=ipretResults&noCacheIE=1" \
| grep -i content-type- Retourne
text/html→ correction nginx requise (voir Étape 3) - Retourne
application/javascript→ nginx est déjà corrigé, vérifiez la console du navigateur pour d'autres erreurs
Étape 3 — Appliquer la correction nginx
Ajoutez un bloc location /visualizationAjax {} dédié dans chaque bloc server { listen 443 ... } du fichier /etc/nginx/conf.d/vivo.conf :
# Correctif JSONP — VIVO retourne text/html pour /visualizationAjax
location /visualizationAjax {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_read_timeout 300s;
proxy_connect_timeout 60s;
proxy_hide_header Content-Type;
add_header Content-Type "application/javascript; charset=UTF-8" always;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
}Pourquoi pas de
X-Content-Type-Options: nosniffici ? Lorsqu'un bloclocationdéfinit unadd_header, il remplace tous lesadd_headerhérités des blocs parents (règle d'héritage nginx). Le bloc ci-dessus omet intentionnellementnosniffpour permettre au navigateur d'accepterContent-Type: application/javascript. Les autres en-têtes de sécurité (HSTS, X-Frame-Options, Referrer-Policy) sont explicitement répétés pour maintenir la posture de sécurité.
Après modification, validez et rechargez nginx :
sudo nginx -t && sudo systemctl reload nginxRelancez la vérification de l'Étape 2 — content-type: application/javascript; charset=UTF-8 confirme que la correction est active.
Ce correctif est inclus dans le modèle d'image Packer (
packer/provisioners/04-configure-nginx.sh) et la configuration nginx Docker (docker/nginx/vivo.conf) depuis le commitf92ba3f. Les nouveaux déploiements depuis ces sources ne sont pas affectés.
Page originale (English) : Troubleshooting
Getting Started
Configuration
Using VIVO
Help
Démarrage
Configuration
Utiliser VIVO
Aide