当前位置: 首页 > 面试题库 >

Jenkins从属权限在复制slave.jar时被拒绝

伍心水
2023-03-14
问题内容

我的权限被拒绝,但不知道为什么。从我的詹金斯大师那里,我能够使用ssh-rsa-key运行以下命令

scp /var/cache/jenkins/war/WEB-INF/slave.jar jenkins@<my_slave_host>:/var/jenkins/

注意: 当我发现从属主机不存在并使其由jenkins用户拥有时,我确实在从属主机上手动创建了/ var / jenkins
/。我的主jenkins配置为使用.ssh密钥使用jenkins @ mySlaveHost。

有什么想法为什么我会拒绝权限吗?它想做什么?

这是单击[Lauch slave agent]按钮后来自主詹金斯的日志:

[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.

编辑:这是在奴隶上的/ var / jenkins:

$ 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

至于SFTP,我不认为它已启用,您能否指出任何文档说SFTP是从属服务器的先决条件?我看过的所有页面都没有提到SFTP。


问题答案:

看来问题与您的远程根目录设置有关。这需要是slave.jar的位置,因为Jenkins会尝试从那里执行它。

至于权限,需要配置远程根目录(无论您将其设置为什么),以允许Jenkins访问它。

因此,如果您将远程根目录设置更改为/ var / jenkins /,则应该成功启动Jenkins从属。



 类似资料:
  • 编辑:这是/var/Jenkins关于奴隶的文章: 至于SFTP,我不认为它是启用的,你能给我指出任何文档说SFTP是一个奴隶的先决条件吗?我看到的所有页面都没有提到SFTP。

  • 问题内容: 很抱歉来到这里问这个问题,但是我已经读完了所有互联网,试图找到解决方案,但是我仍然遇到这个问题… 我已经成功安装了Jenkins(让我在仍有希望的时候开始)可以在我们的持续集成流程中使用它。 我试图从这样一个简单的例子开始: 但是每次启动时,都会出现此错误: 问题在于用户jenkins(服务和主节点以Jenkins的身份运行)拥有此存储库上的所有权限。我试图授予组和其他人读取和执行的权

  • 我正试图将位图保存到文件中,但android studio抛出了一个异常java。io。FileNotFoundException:/storage/simulated/0/Pictures/savedBitmap。png(权限被拒绝)我做错了什么?

  • 我们有一个共同的LDAP帐户/用户。我们计划使用此用户为我们的团队配置 Jenkins。 < li >我使用我的登录名登录到机器/虚拟机并安装了Jenkins。 < li >然后,我仅从我的帐户生成ssh密钥,但我在生成ssh密钥时提供的电子邮件id是普通用户。 < li >然后我将公共ssh密钥添加到Github中(在GitHub中,我使用普通用户登录)。 < li >将私钥添加到Jenkins

  • 我添加了使用权限,包括WRITE_EXTERNAL_STORAGE,android.permission.相机,READ_EXTERNAL_STORAGEAndroidManifest.xml. 当我在Nexus6(API 24)中运行我的应用程序时,它向我抛出了以下错误: java.io.IOException:权限被拒绝 这是我的代码: 如何在权限相机运行时打开之前使用它?

  • 问题内容: 当我尝试运行简单的docker命令时,例如: 我收到一条错误消息: 获得权限被拒绝… /var/run/docker.sock:connect:权限被拒绝 当我检查权限 我看到这一行: 因此,我遵循许多论坛的建议并将本地用户添加到docker组: 但这无济于事。我仍然收到非常相同的错误消息。我该如何解决? 问题答案: 对于那些刚接触shell的人,命令: 需要在您的外壳中定义。默认情况