复制slave.jar时Jenkins Slave权限被拒绝

2024-02-22

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

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

Note:当我看到它不存在并使其由 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 从属。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

复制slave.jar时Jenkins Slave权限被拒绝 的相关文章

  • 使用 Jenkins Git 插件中的 SSH 密钥在构建期间运行 Git 命令

    我们在 Jenkins 上的构建作业作为发布构建的一部分运行一些 git 命令 例如 git push 和 git pull 因此需要一种在构建期间从 shell 运行经过身份验证的 git 命令的方法 我们的詹金斯奴隶不持有任何凭证 因为
  • PHP启动:无法使用Jenkins加载动态库'/usr/lib/php/20160303/pdo_sqlite.so'

    在 Jenkins 管道中运行 phpunit 测试套件时 我收到此警告 PHP Warning PHP Startup Unable to load dynamic library usr lib php 20160303 pdo sql
  • Maven 依赖项更新报告需要数小时才能完成

    我有任务运行 Jenkins 工作女巫会报告新版本的库 我认为这些可以满足我的需要 org codehaus mojo versions maven plugin 2 5 plugin updates report org codehaus
  • 使用与后期步骤中的 Shell 脚本中的克隆相同的 http git 凭据

    我想要自动化我们的发布过程 并且我有一个 Maven 项目的以下 Jenkins 构建作业 使用配置的 Jenkins 凭证 用户名 密码 克隆 Git 存储库 执行一些 Maven 命令以进行构建 配置一个后步骤来执行一些额外的 Git
  • 尝试 SSH 时设备的 ioctl 不合适

    我正在尝试通过 SSH 连接几台服务器并尝试获取sudo l每个服务器的输出 下面是我正在执行的脚本 bin bash serverlist tmp servers while IFS read r server netgroup user
  • Laravel 5.5 中的主从配置

    如何配置 Laravel 5 5 主从 MySQL 复制 我想分别在master和slave上进行写操作和读操作 可选 有没有办法在理想条件下进行连接池和打开连接的最大 最小数量 只需改变你的config database php文件包含读
  • 如何将参数从jenkins传递到selenium

    我正在使用詹金斯和硒 我需要将测试 url 从 jenkins 发送到 selenium 服务器 在常规选项卡下 詹金斯字符串参数 Name APP Default Value http localhost basecode 在构建后操作下
  • 如何阻止 Jenkins 中的 CI 构建意外发布到发布存储库?

    有时 开发人员会不小心签入 POM 中没有 SNAPSHOT 的版本 这将构建 Maven 项目并将工件发布到发布存储库 我怎样才能避免这种情况呢 我只想发布构建工件以发布存储库 而不是 CI 构建 我考虑了以下问题 但它们都不是一个简单的
  • 通过 SSH 将变量传递给远程脚本

    我正在通过 SSH 从本地服务器在远程服务器上运行脚本 首先使用 SCP 复制该脚本 然后在传递一些参数时调用该脚本 如下所示 scp path to script server example org another path ssh s
  • 如何在两个不同帐户之间设置无密码身份验证

    我们可以在两台机器的两种不同用途之间设置无密码身份验证吗 例如 计算机A有用户A 计算机B有用户B 我们可以设置密码 ssh 以便计算机 A 上的用户 A 使用其用户帐户 A 登录计算机 B 谢谢你 如果我理解你的问题 你能设置一下吗ssh
  • 使用脚本自动输入 SSH 密码

    我需要创建一个自动向 OpenSSH 输入密码的脚本ssh client 假设我需要通过 SSH 进入myname somehost用密码a1234b 我已经尝试过 bin myssh sh ssh myname somehost a123
  • Expect 远程 SSH 登录并执行命令的脚本

    我正在使用以下 Expect 脚本远程 SSH 登录 Raspberry Pi 并执行命令 usr bin expect set timeout 60 spawn ssh lindex argv 1 lindex argv 0 expect
  • 在 jelly 脚本中使用 JavaScript

    我正在尝试在 Jenkins 中使用用 JavaScript 编写的脚本 我认为最简单的方法是在 jelly 脚本中调用它们 例如 我有文件 myCustom js alert Hello World function myFunction
  • 如何在 Jenkins 中安排构建?

    如何安排 Jenkins 构建 使其只能在每天的特定时间进行构建 例如下午 4 点开始 0 16 1 7 我理解为 每个月周一到周日下午 0 分钟 下午 4 点 但是它每分钟都会构建 如果有任何建议 我将不胜感激 谢谢 Update 请阅读
  • GoLang ssh:尽管将其设置为 nil,但仍出现“必须指定 HosKeyCallback”错误

    我正在尝试使用 GoLang 连接到远程服务器 在客户端配置中 除了用户和密码之外 我将 HostKeyCallback 设置为 nil 以便它接受每个主机 config ssh ClientConfig User user HostKey
  • Jenkins + Gradle + Artifactory:无法读取生成的构建信息

    我正在尝试使用 Jenkins Pipeline 调用 Gradle 工具 将我的工件推送到 Artifactory 我正在关注 GitHub 上发布的示例 Example1 https github com JFrogDev projec
  • 访问 jelly 模板中的自定义环境变量

    使用 Jenkins 管道 您可以通过以下方式设置任何环境变量全局变量称为 env 果冻模板反过来 您可以访问 Jenkins API 包括hudson model AbstractBuild and hudson model Abstra
  • 无法从 jenkins 作为后台进程运行 nohup 命令

    更新 根据下面的讨论 我编辑了我的答案以获得更准确的描述 我正在尝试从詹金斯运行 nohup 命令 完整的命令是 nohup java jar home jar server process 0 35 jar prod gt gt var
  • 抑制 Jenkins 文件中的管道输出

    当我在詹金斯上运行构建时 它总是在执行詹金斯步骤时打印管道 控制台当前输出 Build context CI clean app clean BUILD SUCCESSFUL in 22s 2 actionable tasks 2 exec
  • ssh远程变量赋值?

    以下内容对我不起作用 ssh email protected cdn cgi l email protection k 5 echo k 它只是返回一个空行 如何在远程会话 ssh 上分配变量 Note 我的问题是not关于如何将本地变量传

随机推荐

  • 记录 Kubernetes 中使用部署部署的 Pod

    我将在下面尝试解释我的问题 使用部署创建一个 Pod 然后使用以下命令对其应用另一个更新kubectl apply f sampledep yaml 如果我们这样做 Pod 名称就会改变kubectl get pods 因此 我们之前的 P
  • Jenkins 在构建和构建后之间挂起

    将 Jenkins 更新到版本 2 156 从版本 1 6 后 我们的一些构建作业在完成后和进行构建后操作之前会陷入困境 作业本身会在 5 分钟内完成 与之前相同 然后挂起 5 10 分钟 然后再继续 我设法将其范围缩小到 Executor
  • 如何在通过Wine运行的Linux程序和Windows程序(同一台计算机)之间共享内存?

    有没有办法 以及如何 在通过 wine 运行的 linux 程序和 windows 程序之间共享内存 由于可能很难理解为什么要做这样的事情 我给你我的情况 我有一个仅为 Windows 编译的专有程序 但该程序有一个开放的 C 插件 API
  • css3 关键帧动画的 SASS(不是 SCSS)语法

    有没有办法在SASS中写入关键帧 我发现的每个例子实际上都是 SCSS 即使它说它是 SASS 需要明确的是 我的意思是没有大括号的 以下是如何在 Sass 语法中实现 css 关键帧 keyframes name of animation
  • Java 9 takeWhile 和 dropWhile 读取并跳过某些行

    我有一个文本文件 其中包含多个报告 每个报告都以文字 REPORT ID 开头 并具有特定值 即 ABCD 对于简单的情况 我只想提取那些具有值 ABCD 的报告的数据 考虑到复杂性 我只想提取 TAG1 值 第二行 为 100037535
  • 如何让 Python 自动创建字典中缺失的键/值对? [复制]

    这个问题在这里已经有答案了 我正在创建一个多层深度的字典结构 我正在尝试做类似以下的事情 dict dict a b True 目前 上述操作失败 因为键 a 不存在 目前我必须检查每个嵌套级别并手动插入一个空字典 是否有某种类型的语法糖能
  • 启动第一个 Django 项目错误

    我的计算机运行 Ubuntu 12 04 我按照本教程开始使用 Django http blog stannard net au 2010 12 11 installing django with apache and mod wsgi o
  • Ffmpeg 在 Electron 沙盒应用程序中中止

    我有一个 Electron 应用程序 发布在 Mac AppStore 上 并且是沙盒的 我正在尝试添加一个新功能 可以动态编码 解码视频 这样我就可以在 Electron 上下文中流式传输更多视频格式 我在用着流利的 ffmpeg htt
  • 哪些标准 C++ 功能可用于查询机器/操作系统架构?

    用于查询运行程序的硬件或操作系统功能的属性的标准 C 功能和实用程序是什么 例如 std thread hardware concurrency 给出机器支持的线程数 但是 如何检测计算机有多少 RAM 或者进程正在使用多少 RAM 或者某
  • 如何从 n 个元素中找到 k 排列的索引?

    我知道 对于一个k 排列p大小的k 从构建n元素 有 P n k n n k 可能的k 排列 例如 k 2 n 4 l 1 2 3 4 P n k 4 4 2 12 1 2 2 1 3 1 4 1 1 3 2 3 3 2 4 2 1 4 2
  • .BOT 文件未部署到 Azure Bot Service v4

    将 Azure Bot 服务与 C Bot Builder SDK v4 v4 0 7 2018 年 9 月发布的 GA 版本 结合使用 我正在使用BOT file https github com Microsoft botbuilder
  • Keras:无法导入名称 np_utils [重复]

    这个问题在这里已经有答案了 我正在使用 Python 2 7 和 Jupyter Notebook 进行一些基本的机器学习 我正在按照本教程进行操作 http machinelearningmastery com regression tu
  • 在 laravel 中找不到用于 sqlite 的 pdo 异常驱动程序

    当我跑步时php artisan migrate我得到的命令 PDOException 找不到驱动程序 我将默认数据库设置为 sqlite 并检查是否有用于 sqlite 的 pdo 驱动程序php i命令 我无法理解我的问题 你的系统缺失
  • 猫鼬枚举数

    我需要获取模式中字段的枚举值 我有架构 let adminSchema new Schema login type String unique true required true minlength 5 maxlength 300 has
  • 使用套接字 fd 在手机之间传输实时视频

    我是android编程的新手 发现自己陷入了困境 我一直在研究各种从手机到手机流式传输实时视频的方法 似乎它大部分功能都可用 当然除了最重要的部分 播放流 它似乎是从一部手机发送流 但第二部手机无法播放流 这是游戏方的代码 public c
  • 为什么选择排序不稳定?

    这可能是微不足道的 但我不明白为什么默认实现选择排序 http en wikipedia org wiki Selection sort不稳定 在每次迭代中 您都会找到剩余数组中的最小元素 当找到这个最小值时 您可以选择找到的第一个最小值
  • ElasticSearch NEST:通过ElasticClient通过指定json创建索引

    我们允许客户在创建索引时定义自定义分析器 我们更愿意在 json 中指定这一点 以便通过底层 ElasticSearch 文档提供最大的灵活性和可理解性 我想使用 json 字符串中定义的分析器 映射器等的任意描述来创建索引 使用感觉 我的
  • 优化器如何决定合并连接和散列连接?

    数据库系统概念介绍了实现连接操作的几种方法 其中两个是合并连接和散列连接 我想知道优化器何时决定使用合并连接并且 什么时候进行哈希连接 特别是 从https stackoverflow com a 1114288 156458 https
  • Jquery 文件上传语法错误:JSON.parse:JSON 数据后出现意外的非空白字符

    我想使用产品 但上传图片时我看到错误 SyntaxError JSON parse JSON 数据后出现意外的非空白字符 script directory Folder2 directory Jquery file upload funct
  • 复制slave.jar时Jenkins Slave权限被拒绝

    我的权限被拒绝 但不知道为什么 从我的詹金斯大师那里 我可以使用 ssh rsa key 运行以下命令 scp var cache jenkins war WEB INF slave jar jenkins