Jenkins groovy pipeline - 需要执行 jar 文件的命令标准输出

2023-12-02

我正在使用 Jenkins v:1.647 和 Pipeline 插件 v:1.14。我的管道作业提取了一个运行我的编排的常规脚本。我的问题是我有一个可执行的 jar,它将执行一些 Scalr API 操作并返回一个新的服务器主机名,传入标准输出。我有一个在詹金斯之外工作的工作片段。

def serverHostName = "java -jar scalr-api.jar testing654 n1-standard-8".execute().text

这段代码在 Jenkins 之外运行良好,但我的问题是,在运行管道时,我收到了令人讨厌的 RejectedAccessException。但与其他脚本安全异常不同,我无法选择批准有问题的方法。

我正在寻找任何可以通过脚本安全性并允许我运行该 jar 并获取标准以便稍后在我的脚本中使用的解决方案

Thanks

詹金斯错误:

org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: unclassified method java.lang.UNIXProcess getText
at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:74)
at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:149)
at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:146)
at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.methodCall(SandboxInvoker.java:15)
at WorkflowScript.run(WorkflowScript:97)
at ___cps.transform___(Native Method)
at com.cloudbees.groovy.cps.impl.ContinuationGroup.methodCall(ContinuationGroup.java:55)
at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.dispatchOrArg(FunctionCallBlock.java:106)
at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.fixName(FunctionCallBlock.java:74)
at sun.reflect.GeneratedMethodAccessor291.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72)
at com.cloudbees.groovy.cps.impl.ConstantBlock.eval(ConstantBlock.java:21)
at com.cloudbees.groovy.cps.Next.step(Next.java:58)
at com.cloudbees.groovy.cps.Continuable.run0(Continuable.java:154)
at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.access$001(SandboxContinuable.java:19)
at org.jenkinsci.plugins.workflow.cps.SandboxContinuable$1.call(SandboxContinuable.java:33)
at org.jenkinsci.plugins.workflow.cps.SandboxContinuable$1.call(SandboxContinuable.java:30)
at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.GroovySandbox.runInSandbox(GroovySandbox.java:106)
at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.run0(SandboxContinuable.java:30)
at org.jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:164)
at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:277)
at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.access$000(CpsThreadGroup.java:77)
at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:186)
at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:184)
at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$2.call(CpsVmExecutorService.java:47)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:112)
at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)

完成:失败


从 2.4 版本开始管道:节点和进程使用它就足够了:

def out = sh script: 'java -jar scalr-api.jar testing654 n1-standard-8', returnStdout: true
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jenkins groovy pipeline - 需要执行 jar 文件的命令标准输出 的相关文章

  • Docker:PermissionError:[Errno 13]权限被拒绝[重复]

    这个问题在这里已经有答案了 我在运行 docker compose 时得到了这个 Got permission denied while trying to connect to the Docker daemon socket at un
  • 在 jelly 脚本中使用 JavaScript

    我正在尝试在 Jenkins 中使用用 JavaScript 编写的脚本 我认为最简单的方法是在 jelly 脚本中调用它们 例如 我有文件 myCustom js alert Hello World function myFunction
  • 如何从 Jenkins 管道中的函数返回“allOf”的值

    我们有一个 Jenkins 管道设置 使用 Jenkinsfile 来定义不同构建需要做什么 在我们的很多阶段 当我们要发布版本时 我们需要完成一些工作 但如果不打算发布版本 则可以跳过这些工作 目前我们有这样的代码 when allOf
  • Groovy 和 Groovy++,它们有什么不同吗?

    我最近知道groovy 已经发布了 Groovy和Groovy 的主要区别是什么 来自 groovy 页面http code google com p groovypptest http code google com p groovypp
  • Jenkins 管道和 java.nio.file.* 方法的问题

    我正在尝试使用 java nio file 中的方法在 Jenkins 管道中执行一些基本文件操作 无论代码存在于哪个节点块中 代码都在主节点上执行 在管道中 我已经验证了各个节点块都是正确的 它们唯一地标识了特定的节点 但是 pathEx
  • Powershell Invoke-Command 远程手动工作,但不能通过 Jenkins

    我遇到了一个非常奇怪的情况 即从 Windows Server 2012 R2 手动运行相同的命令时可以工作 但从同一服务器上运行的 Jenkins 从属进程无法工作 首先 手动运行的输出 管理 PowerShell 窗口 PS C Use
  • 使用功能分支时避免 Maven 存储库版本冲突

    Question 如何处理 Maven 多项目构建的功能分支 Jenkins 构建和部署这些分支 以将开发人员的构建开销降至最低 但开发和功能分支无法构建相同的 Maven 版本 否则我们将面临工件和源代码之间不匹配的风险 我们有一个脚本来
  • Jenkins:在管道 Jenkins 文件内执行 AWS CLI 命令

    您知道如何在 aws 中执行 AWS CLI 命令吗 Jenkinsfile为了建立管道 我没有找到任何插件 首先 您需要在服务器上安装 aws cli 并确保 jenkins 用户有权运行它 或者在创建 EC2 实例时简单地使用 Amaz
  • 如何使用自定义 JDK 构建 Jenkins 项目?

    我有一个常规的 Jenkins 实例 运行一些多分支管道 该实例在 JDK 11 上运行 因为 Jenkins 并不真正支持更高版本 没关系 但不好的是 我的所有管道似乎也都受到 Java 11 的限制 Jenkins 仅使用它自己也使用的
  • Jenkins 管道中的 Sonarqube 质量门状态检查失败

    我是詹金斯管道脚本和声纳库的新手 如果我能就以下问题获得一些帮助 那就太好了 当质量门检查失败时 我想使 Jenkins 声明式管道作业失败 根据声纳文档 https docs sonarqube org latest analysis s
  • groovy中bigdecimal的默认比例

    groovy 中 BigDecimal 的默认小数位数是多少 和四舍五入 因此 当尝试进行计算时 def x 10 0 30 0 0 3333333333 def y 20 0 30 0 0 6666666667 基于此 我可以假设它使用比
  • Groovy 元编程 - 将静态方法添加到 Object.metaClass

    我遇到了无法解决的 Groovy 元编程问题 将静态方法 foo 添加到类 FooBar 时 FooBar foo 按预期工作 FooBar metaClass static foo println hello FooBar foo 但是
  • 如何删除詹金斯中的旧版本? [复制]

    这个问题在这里已经有答案了 我从 Jenkins 的构建目录中删除了旧的构建文件夹 希望它们在 UI 中删除 不幸的是 虽然这些构建目录消失了 但它们的 UI 链接仍然存在 我现在有两个问题 如何删除用户界面中失效的链接 如何从 cli 中
  • Jenkins 共享库:“java.lang.NoSuchMethodError:没有这样的 DSL 方法”

    我正在尝试通过 Jenkinsfile 和共享库创建 Jenkins 管道 我通过 Web UI 创建了一个作业来获取 Jenkinsfile 它工作正常 但是 共享库内容似乎无法被 Jenkins 识别 下面是 Jenkinsfile 和
  • 有 JUnit Attachments Jenkins 插件工作的示例吗?

    在过去一个小时左右的时间里 我一直在努力让以下工作正常进行 我将附件存储在目标目录中 但它们在班级级别或测试级别的测试页面上都没有链接 我尝试了以下每种组合 放置附件文件夹target surefire reports class 与目标
  • 在 jenkins 中运行 Maven 项目时出现 java.lang.reflect.InitationTargetException

    这是堆栈跟踪树 我在 Jenkins 中运行我的 Maven 项目时得到的 我不明白我的代码有什么问题 也许是因为 Jenkins 中的一些插件 lt JENKINS REMOTING CAPACITY gt channel started
  • 如何在 Jenkins 构建之前自动合并 Git 分支?

    如何在 Jenkins 构建之前自动合并 Git 分支 我有 2 个版本 一个用于分支master和一个用于生产 我想做 Git 合并origin master当我进行生产构建时 Jenkins 上最新的 Git 插件支持这一点 刚刚设置C
  • Jenkins 工作流程检查作业是否正在运行或已计划

    是否可以检查某些作业是否正在运行或从某些工作流程脚本中安排 尽管使用阶段管理并发似乎就足够了 stage name stageName concurrency 1 并在这些阶段运行构建 如下所示 build job test job wai
  • 如何仅根据拉取请求在 Jenkins 中运行阶段?

    我现在有一个基于 Jenkinsfile 的管道 其中包含多个阶段 每次提交到 Github 时都会由 webhook 触发 我想在每次提交时保持 构建 和 单元测试 阶段运行 但仅在分支准备拉取请求时运行 集成测试 阶段 我想要的是 st
  • 文本在指定长度后分割,但不要使用 grails 打断单词

    我有一个长字符串 需要将其解析为长度不超过 50 个字符的字符串数组 对我来说 棘手的部分是确保正则表达式找到 50 个字符之前的最后一个空格 以便在字符串之间进行彻底的分隔 因为我不希望单词被切断 public List

随机推荐

  • 如何将查询语句记录到Neo4j服务器,可能吗?

    我想将整个查询语句记录到 Neo4j 服务器 但是 在搜索 SO 和文档之后我没有成功 我发现这个问题 Neo4j 服务器上记录的剩余查询 但是更改这些配置设置并没有达到我所希望的效果 我在 Golang 工作并使用Go CQ库与 Neo4
  • 如何让 Twitter Bootstrap Accordion 保持一组开放?

    我正在尝试使用 Twitter 引导程序使用手风琴和折叠插件来模拟 Outlook 栏 到目前为止 我已经实现了折叠和手风琴工作 但它目前允许折叠所有部分 我想限制它 以便始终显示一个且仅一个 这是我正在研究的一个 http jsfiddl
  • 用于在 JSON 数组中查找元素的索引

    我有一个看起来像这样的表 CREATE TABLE tracks id SERIAL artists JSON INSERT INTO tracks id artists VALUES 1 name blink 182 INSERT INT
  • 我是否正确解析此 HTTP POST 请求?

    首先我要说的是 我正在使用twisted web框架 Twisted web的文件上传没有像我想要的那样工作 它只包含文件数据 而不包含任何其他信息 cgi parse multipart没有像我想要的那样工作 同样的事情 twisted
  • 如何从Android中的普通java类调用Activity类[重复]

    这个问题在这里已经有答案了 我有一个 noraml java 类 在该类的构造函数中称为 ReceivedChat java 我想调用 Android 的 Activity public class ReceivedChat String
  • Grid.MVC 与 ASP.NET MVC 5 兼容吗?

    在我开始搞乱一些不起作用的东西之前 Grid MVC 可以与 ASP NET MVC 5 一起使用吗 在 gridmvc codeplex com 上他们只写 MVC3 4 但我想知道是否有人尝试过 MVC5 你尝试过 但没有成功 试试这个
  • 有没有办法可以将 GeoFireStore 查询与普通 Firestore 查询结合起来?

    我想查询我存储在名为 Users 的集合中的用户 每个用户都有年龄和体重等字段 有没有办法可以通过距使用 GeoFire 运行搜索的用户的距离来查询用户 并将其与 FireStore 搜索查询结合起来 例如 我是一名用户 正在寻找 20 英
  • .js 文件适用于 Chrome 和 Firefox,但不适用于 IE

    当在 IE11 中测试我的网站时 它的某些部分不起作用 我相信问题出在我的 custom js 文件上 因为所有问题都链接到该 js 不过 该页面在 Chrome 和 Firefox 中运行良好 我在页面的页脚中加载名为 custom js
  • Firebase 查询是否可扩展

    在我的应用程序中 要检查注册时是否使用了电子邮件 和用户名 我使用这样的查询 let emailRef Firebase url https photocliq5622144 firebaseio com users emailRef qu
  • SwiftUI:“onDrop”覆盖层在 LazyVGrid 中不会消失?

    我正在测试 Asperi 对单元格重新排序的出色答案 SwiftUI 使用 onDrag 和 onDrop 对单个 LazyGrid 中的项目重新排序 我遇到的问题是 当我简单地进入拖动模式然后放置到位时 覆盖层不会重置 请参见单元格 3
  • 在 Django 中使用 fullCalendar

    有点像这里发布的问题的后续 Django 通过自定义模板标签使用用户输入修改数据 但自从提出这个问题以来 我决定采取不同的方法 正如你所知 我是个新手 所以请放轻松 我希望 Django 应用程序中有一个每周日历 显示数据库中的班次 以下是
  • 如何防止 PowerShell 中的变量注入?

    Ansgar Wiechers 对最近 PowerShell 问题的评论再次触发了我 DO NOT use Invoke Expression关于一个安全问题 我已经在脑海中思考了很长时间并且需要问 强烈的声明 参考调用表达式被认为是有害的
  • 右上角菜单选项

    I am not able to set the background image for the title bar i can only set color let me know what i have to change in th
  • 使用 Knockout 'foreach' 循环多维数组

    我有一个多维关联数组 this items ko observableArray name name1 viewable true children name name1 1 viewable true children name name
  • 如何在活动之间传递双数组(布尔[][])?

    我看不到将双布尔数组传递给另一个活动 我使用 putExtra 当我检索它并将其投射到boolean 它指出它无法投射并崩溃 然而 Boolean 是有效的 我该如何通过boolean 活动之间 如果您绝对需要一个 boolean 并且不能
  • C 静态变量初始化

    我学了一些 C 语言并发现了静态变量的解释 他们展示了这段代码 include
  • div 内的图像水平居中

    我正在尝试使用向上 向下箭头将图像设置为 div 的水平中心 我在这里阅读了一些教程和问题 但以下方法不起作用 img display block margin auto 它是用 Bootstrap 制作的 因此将部分集成在下面的代码片段中
  • 如何在Spring Security中编写自定义过滤器?

    我希望每个请求接收一些信息 所以我认为不要为每个请求提供一个函数并分别从请求中获取这些信息 最好有一个过滤器 所以每个请求都会通过这个过滤器 我就会得到我想要的 问题是 如何编写自定义过滤器 假设它不像任何预定义的 spring secur
  • Oracle10g中如何按顺序连接多行

    如果我有这样的数据 GROUP SEQUENCE COMMAND ONE 3
  • Jenkins groovy pipeline - 需要执行 jar 文件的命令标准输出

    我正在使用 Jenkins v 1 647 和 Pipeline 插件 v 1 14 我的管道作业提取了一个运行我的编排的常规脚本 我的问题是我有一个可执行的 jar 它将执行一些 Scalr API 操作并返回一个新的服务器主机名 传入标