Jenkins Esclave Autorisation Refusée lors de la copie slave.jar
Je obtenir les autorisations niée, mais je ne sais pas pourquoi. De mon jenkins maître, j'ai été en mesure d'exécuter la commande suivante à l'aide de ssh-rsa-clés
scp /var/cache/jenkins/war/WEB-INF/slave.jar jenkins@<my_slave_host>:/var/jenkins/
Remarque: je n'ai créer manuellement le fichier /var/jenkins/sur le mon esclave hôte lorsque j'ai vu qu'il n'existait pas et fait possédé par l'utilisateur jenkins. Mon maître jenkins est configuré pour utiliser le jenkins@mySlaveHost à l'aide .les clés ssh.
Des idées pourquoi je reçois des autorisations refusées? Qu'est ce qu'il essaie de faire?
Voici le journal de maître jenkins après avoir cliqué sur [Lancer esclave de l'agent] bouton:
[02/27/15 15:18:01] [SSH] Opening SSH connection to <my_slave_host>:22.
[02/27/15 15:18:02] [SSH] Authentication successful.
[02/27/15 15:18:03] [SSH] The remote users environment is:
BASH=/bin/bash
BASHOPTS=cmdhist:complete_fullquote:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
BASH_CMDS=()
BASH_EXECUTION_STRING=set
BASH_LINENO=()
BASH_SOURCE=()
BASH_VERSINFO=([0]="4" [1]="3" [2]="11" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu")
BASH_VERSION='4.3.11(1)-release'
CATALINA_HOME=/opt/tomcat/current
DIRSTACK=()
EUID=107
GROUPS=()
HOME=/var/lib/jenkins
HOSTNAME=*********** REMOVED***********
HOSTTYPE=x86_64
IFS=$' \t\n'
JAVA_HOME=/usr/lib/jvm/java-7-oracle
LANG=en_US.UTF-8
LOGNAME=jenkins
MACHTYPE=x86_64-pc-linux-gnu
MAIL=/var/mail/jenkins
OPTERR=1
OPTIND=1
OSTYPE=linux-gnu
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
PIPESTATUS=([0]="0")
PPID=10592
PS4='+ '
PWD=/var/lib/jenkins
SHELL=/bin/bash
SHELLOPTS=braceexpand:hashall:interactive-comments
SHLVL=1
SSH_CLIENT='10.57.13.32 34436 22'
SSH_CONNECTION='10.57.13.32 34436 10.57.6.42 22'
TERM=dumb
UID=107
USER=jenkins
XDG_RUNTIME_DIR=/run/user/107
XDG_SESSION_ID=42
_=']'
[02/27/15 15:18:03] [SSH] Checking java version of java
[02/27/15 15:18:04] [SSH] java -version returned 1.7.0_76.
[02/27/15 15:18:04] [SSH] Starting sftp client.
[02/27/15 15:18:04] [SSH] Copying latest slave.jar...
hudson.util.IOException2: Could not copy slave.jar into '/var/jenkins' on slave
at hudson.plugins.sshslaves.SSHLauncher.copySlaveJar(SSHLauncher.java:1019)
at hudson.plugins.sshslaves.SSHLauncher.access$300(SSHLauncher.java:133)
at hudson.plugins.sshslaves.SSHLauncher$2.call(SSHLauncher.java:709)
at hudson.plugins.sshslaves.SSHLauncher$2.call(SSHLauncher.java:696)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: hudson.util.IOException2: Could not copy slave.jar to '/var/jenkins/slave.jar' on slave
at hudson.plugins.sshslaves.SSHLauncher.copySlaveJar(SSHLauncher.java:1016)
... 7 more
Caused by: com.trilead.ssh2.SFTPException: Permission denied (SSH_FX_PERMISSION_DENIED: The user does not have sufficient permissions to perform the operation.)
at com.trilead.ssh2.SFTPv3Client.openFile(SFTPv3Client.java:1201)
at com.trilead.ssh2.SFTPv3Client.createFile(SFTPv3Client.java:1074)
at com.trilead.ssh2.SFTPv3Client.createFile(SFTPv3Client.java:1055)
at hudson.plugins.sshslaves.SFTPClient.writeToFile(SFTPClient.java:93)
at hudson.plugins.sshslaves.SSHLauncher.copySlaveJar(SSHLauncher.java:1008)
... 7 more
[02/27/15 15:18:04] Launch failed - cleaning up connection
[02/27/15 15:18:04] [SSH] Connection closed.
Edit:
Voici le fichier /var/jenkins sur l'esclave:
$ ls -al
total 436
drwxr-xr-x 2 jenkins jenkins 22 Feb 27 15:17 .
drwxr-xr-x 14 root root 4096 Feb 27 15:12 ..
-rw-r--r-- 1 jenkins jenkins 439584 Feb 27 15:17 slave.jar
Comme pour SFTP, je ne pense pas qu'il est activé, pouvez-vous m'indiquer toutes les docs que dit SFTP est un pré-requis pour un esclave? Toutes les pages que j'ai vu ne pas mentionner SFTP.
/var/jenkins
sur ce serveur distant? Par exemple, exécutez "ls -ld /var/jenkins" et ajouter le résultat à la question? Également inclure les autorisations de slave.jar dans ce répertoire, s'il y a un fichier dans le répertoire.Pour autant que je peux voir à partir de votre journal - Jenkins est l'utilisation de SFTP et vous, personnellement, est à l'aide de SCP. Vous pouvez également essayer de transférer des fichiers via SFTP afin de reproduire les problèmes que Jenkins rencontre.
OriginalL'auteur dlite922 | 2015-02-27
Vous devez vous connecter pour publier un commentaire.
Il semble que le problème est lié à votre Télécommande répertoire racine de réglage. Que doit être l'emplacement de la slave.jar comme Jenkins va essayer de l'exécuter à partir de là.
Comme pour les autorisations, la Distance Répertoire Racine (que vous définissez) doit être configuré pour permettre Jenkins pour y accéder.
Par conséquent, si vous modifiez votre Distance de la racine paramètre le répertoire /var/jenkins/dans votre cas, il doit lancer le Jenkins esclave avec succès.
Pas de travail pour moi. À la fois esclave et le maître ont même jenkins chemin /var/lib/jenkins. SSH est également de la connexion de l'amende et des autorisations sont également correctes.Je suis en manque de quelque chose.S'il vous plaît aider [![Esclave][1]][1] [![Maître][2]][2] [1]: i.stack.imgur.com/fcBnw.png [2]: i.stack.imgur.com/BEbhC.png
Vous devriez commencer votre propre question avec plus de données ajouté. Votre problème peut être différente de la mienne.
OriginalL'auteur IceBox
sudo chmod -R 777 /var/jenkins
OriginalL'auteur Andrey
Octroi
fonctionne pour moi
OriginalL'auteur harsh
Pour n'importe qui avec un lecteur externe, vérifiez qu'il est bien monté correct:
Cela pourrait être un problème
OriginalL'auteur orkenstein
Si vous avez changé d'un utilisateur à se connecter à l'esclave, veuillez également vous assurer d'esclaves répertoire de destination est vide (ne contenant pas de slave.jar copiés par l'utilisateur précédent).
C'est un peu stupide, mais chiffrés pour moi un moment.
OriginalL'auteur markin.io