通过jenkins cli安装本地插件 我已启用“通过远程处理启用CLI” 我已经为JNLP设置了固定或随机的TCP端口 我已经成功下载了jenkins-cli.jar

通过jenkins cli安装本地插件 我已启用“通过远程处理启用CLI” 我已经为JNLP设置了固定或随机的TCP端口 我已经成功下载了jenkins-cli.jar,jenkins,jenkins-cli,Jenkins,Jenkins Cli,执行插件安装命令时,我收到: 执行时:java-jar-jenkins-cli.jar-auth user:pass-s安装插件file:///folder/plugin.hpi 错误:执行安装插件命令时发生意外异常。 java.io.FileNotFoundException:/folder/plugin.hpi(没有这样的文件或目录) 没有该文件:// /folder/plugin.hpi既不是更新中心中的有效文件、URL,也不是插件工件名称 我尝试了所有可能的组合,文件确实存在 编辑:

执行插件安装命令时,我收到:

  • 执行时:java-jar-jenkins-cli.jar-auth user:pass-s安装插件file:///folder/plugin.hpi

    错误:执行安装插件命令时发生意外异常。 java.io.FileNotFoundException:/folder/plugin.hpi(没有这样的文件或目录)

  • 没有该文件://

    /folder/plugin.hpi既不是更新中心中的有效文件、URL,也不是插件工件名称

我尝试了所有可能的组合,文件确实存在

编辑:从异常情况来看,它一直认为它是url而不是文件:

at java.io.FileInputStream.open0(Native Method)
    at java.io.FileInputStream.open(FileInputStream.java:195)
    at java.io.FileInputStream.<init>(FileInputStream.java:138)
    at java.io.FileInputStream.<init>(FileInputStream.java:93)
    at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:90)
    at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:188)
    at java.net.URL.openStream(URL.java:1045)
    at hudson.FilePath.copyFrom(FilePath.java:890)
java.io.FileInputStream.open0(本机方法)上的

在java.io.FileInputStream.open(FileInputStream.java:195)
位于java.io.FileInputStream。(FileInputStream.java:138)
位于java.io.FileInputStream。(FileInputStream.java:93)
位于sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:90)
位于sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:188)
在java.net.URL.openStream(URL.java:1045)
位于hudson.FilePath.copyFrom(FilePath.java:890)
"

编辑2:当给定HTTP URL时,它确实可以工作,但是它需要我将它上传到一个服务器上,而不是每次都有


编辑3:我尝试将文件移动到Jenkins/var/lib/Jenkins的同一文件夹中,并授予其777权限。

您作为参数提供给
安装插件的URL必须可由Jenkins主进程访问。如果您收到错误消息

/folder/plugin.hpi (No such file or directory)
那么很可能是访问权限有问题,或者
/文件夹
没有安装在主机的主机上(或者如果使用docker,则安装在主机的容器中)

这就是HTTP URL起作用的原因


因此,对于
文件://
URL,您需要在CLI用户/机器和Jenkins主用户/机器之间对齐文件系统装载和权限。

作为参数提供给
安装插件的URL必须可由Jenkins主进程访问。如果您收到错误消息

/folder/plugin.hpi (No such file or directory)
那么很可能是访问权限有问题,或者
/文件夹
没有安装在主机的主机上(或者如果使用docker,则安装在主机的容器中)

这就是HTTP URL起作用的原因


因此,对于
文件://
URL,您需要在CLI用户/机器和Jenkins master用户/机器之间对齐文件系统装载和权限。

这是@Alex O solution的组合,我使用了-auth myuser:mypass而不是--username admin--password password和toggled--remoting

看起来是这样的:

java -jar jenkins-cli.jar -s http://host-ip:8080/ -remoting install-plugin ./plugin.hpi --username my-user --password my-pass -restart

这是@Alex O解决方案的组合,我使用了-auth myuser:mypass而不是--username admin--password,并切换了--remoting

看起来是这样的:

java -jar jenkins-cli.jar -s http://host-ip:8080/ -remoting install-plugin ./plugin.hpi --username my-user --password my-pass -restart

我以root用户身份登录,插件位于master的主机上,我不使用docker。我不确定我能做什么。我仔细检查了通过CLI安装的插件是否与
文件兼容://
URL,因此这一定是访问问题。在master的脚本控制台中,您能否尝试运行命令
新建文件(“/folder/plugin.hpi”).exists()
?输出应为
true
。如果不是,请尝试逐个查找所有路径组件以找到罪魁祸首。我认为您是正确的!现在我得到的是连接被拒绝,而不是文件未找到,有什么线索吗?在运行安装插件后,您从哪里得到脚本控制台中的
连接被拒绝
错误n它表示错误:执行安装插件命令时发生意外异常。java.net.ConnectException:连接被拒绝(连接被拒绝)我以root用户身份登录,插件位于master的主机上,我不使用docker。我不确定我能做什么。我仔细检查了通过CLI安装的插件是否与
文件兼容://
URL,因此这一定是访问问题。在master的脚本控制台中,您能否尝试运行命令
新建文件(“/folder/plugin.hpi”).exists()
?输出应为
true
。如果不是,请尝试逐个查找所有路径组件以找到罪魁祸首。我认为您是正确的!现在我得到的是连接被拒绝,而不是文件未找到,有什么线索吗?在运行安装插件后,您从哪里得到脚本控制台中的
连接被拒绝
错误n它表示错误:执行安装插件命令时发生意外异常。java.net.ConnectException:连接被拒绝(连接被拒绝)