Notre processus de déploiement jenkins extrait notre dépôt git dans l'espace de travail et copie ensuite les fichiers de l'espace de travail dans notre environnement de préparation, en utilisant le plugin de publication par SSH.
Il y a 2 jours, nous avons eu un commit et un déploiement automatique à 10:34 AM et à 02:13 PM. Le commit du matin a bien été déployé, mais depuis le commit de l'après-midi, le travail de publication rapporte ceci :
BUILD SUCCESSFUL
Total time: 15 seconds
SSH: Connecting from host [...]
SSH: Connecting with configuration [...] ...
SSH: Disconnecting configuration [...] ...
ERROR: Exception when publishing, exception message [Permission denied]
Build step 'Send files or execute commands over SSH' changed build result to UNSTABLE
Le commit lui-même était un commit mineur, contenant des fichiers css et javascript pour le frontend. Rien de spectaculaire.
L'ensemble de l'environnement de mise en place a été récursivement mis en chmod 777 et chown à l'utilisateur et au groupe qui est utilisé par la configuration de déploiement par ssh (temporairement, pour s'assurer que nous ne rencontrons pas de problèmes de permission de fichiers).
La permission est toujours refusée.
La configuration de la tâche de déploiement par ssh n'a pas été modifiée au cours des deux derniers mois. Mêmes clés, même utilisateur, mêmes mots de passe, etc.
Malheureusement, le message d'erreur ne contient aucun détail utile.
Une autre tâche qui déploie un projet différent dans le même serveur web mais dans un webroot différent fonctionne parfaitement.
Le serveur fonctionne sous FreeBSD et est stationné chez un hébergeur.
Avant de les contacter, nous voulons nous assurer que nous avons tout vérifié de notre côté.
0 votes
Avez-vous essayé
ssh -v
? Ce qui devrait montrer une sortie verbeuse et peut conduire à plus d'informations.0 votes
Je n'y ai pas pensé. C'est un bon conseil ! Pour référence future, avec plus de détails : Plus d'informations que le petit message d'erreur peuvent être recueillies en se connectant à l'utilisateur jenkins sur le serveur jenkins via ssh, puis en utilisant verbose ssh (ssh -v) pour effectuer manuellement le déploiement ssh via la console. (Ce qui est exactement ce que jenkins fait). @Iony : Merci pour cette idée !