2012-04-24 3 views
2

Mon serveur Jenkins s'exécute dans Tomcat sur le serveur Windows 2008. J'ai configuré un serveur NFS sur CentOS, le serveur Win2008 peut accéder au dossier partagé NFS via la commande mount. Je l'ai testé en cours d'exécution en tant qu'utilisateur administrateur sur Windows. Je monte le dossier en tant que pilote Z sur le serveur Windows 2008. Mais mon travail dans Jenkins a dit qu'il ne peut pas trouver le pilote Z, je suppose que l'application Web Jenkins pourrait ne pas avoir la permission suffisante pour accéder au pilote Z. S'il vous plaît voir le message d'erreur de JenkinsJenkins ne peut pas accéder au pilote monté

Sortie de la console:

Started by user anonymous 
Building in workspace C:\.jenkins\workspace\upland-install 
[upland-install] $ cmd /c call "C:\Program Files\Apache Software Foundation\Tomcat 6.0\temp\hudson4487584210513580576.bat" 

C:\.jenkins\workspace\upland-install>rd d:\tmp\upland_dist /s /q 

C:\.jenkins\workspace\upland-install>xcopy Z:\upland_release\364 d:\tmp /S 

**Invalid drive specification** 
0 File(s) copied 

Comment résoudre ce problème? Installez Jenkins comme un service Windows?

+0

Quel utilisateur exécute votre processus jenkins? –

+0

Je viens d'installer un Windows natif jenkins, il fonctionne comme un service Windows avec un compte administrateur. –

Répondre

3

A solutions couple:

  1. Vous devez exécuter votre processus Jenkins dans le même contexte utilisateur que vous avez monté le lecteur dans Cela fonctionne, mais il est pas toujours la solution désirée..
  2. Exécutez le travail sur un esclave Jenkins démarré dans le contexte de l'utilisateur avec le lecteur monté. Pas toujours possible si les machines esclaves ne sont pas disponibles.
  3. Utilisez le Publish Over CIFS plugin
+0

J'ai installé jenkins en tant que service Windows, utilisez un compte administrateur.Mais il rapporte toujours la même erreur. –

+2

Une quatrième solution possible: Monter le partage en tant que partie de la construction. –

+0

J'utilise un autre moyen de contourner cela. Configurer le serveur Windows 2008 en tant que serveur NFS, CentOS monter le dossier partagé de Windows.Jenkins peut maintenant accéder au dossier local. Parfois, je pense que Windows est plus difficile que Linux. :( –

0

Je ne peux pas [encore] commentaire, sinon je dirais Anders Lindahl de faire sa suggestion une réponse. J'ai eu ce problème exact et la suggestion de monter le disque partagé comme une étape de construction m'a permis d'utiliser le plugin ArtifactDeployer pour copier avec succès sur le lecteur réseau.

J'ai inséré une étape de construction de la « Exécuter commande batch » et typée dans:

net use J: \\example.com\path\to\share 

Remarque, ma configuration est en cours d'exécution Jenkins en tant que compte système local. Et un nœud esclave jnlp installé en tant que service Windows en utilisant un compte de domaine qui a des autorisations pour monter le lecteur réseau.

0

aller au travail -> exécuter open script cammand fenêtre et écrire

X Subst: \ dossier \ dossier2

après exécuter votre tâche. ce qui précède mappera votre lecteur

0

L'accès aux fichiers sur un partage distant directement depuis Jenkins peut être difficile car il renvoie probablement l'accès refusé. Pour résoudre ce problème, configurez le service Jenkins pour qu'il s'exécute en tant qu'utilisateur.

Dans mon cas, je veux afficher (type "\\slave1\log\ui.log") un fichier journal de tests d'interface utilisateur sur un esclave Jenkins vers le maître Jenkins, pour le conserver dans le journal de construction. Sans cela, si un test échoue et qu'une autre construction écrase le faillog, la cause principale n'a pas pu être déterminée. En copiant la sortie du journal vers Jenkins, l'échec de construction peut être reproduit à chaque fois plus tard.

Pour basculer l'utilisateur du service Jenkins, ouvrez mmc, ajoutez le composant logiciel enfichable "Services", recherchez le service Jenkins, double-cliquez dessus et définissez l'utilisateur et le mot de passe dans l'onglet Authentification.

HTH

Questions connexes