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

Jenkins插件,如何在远程节点上执行系统命令?

史劲
2023-03-14
问题内容

我们公司的Jenkins有主节点和两个从节点。我正在为此写插件。插件要做的一件事是从svn中检出一些文件。无法从插件中提取此操作。为此,我从插件的Java代码执行控制台命令“
svn checkout”。问题在于,svn中的文件被检出到主节点,而不是从节点。如何使文件检出到从站?


问题答案:

首先,您具有以下对象,通常作为perform方法的参数接收:

Launcher launcher;
AbstractBuild<?, ?> build;
BuildListener listener;

然后,您已经创建了参数并将其添加到argumentsListBuilder,可能类似于:

ArgumentListBuilder command = new ArgumentListBuilder();
command.addTokenized("xcopy /?");

然后,执行以下操作:

ProcStarter ps = launcher.new ProcStarter();
ps = ps.cmds(command).stdout(listener);
ps = ps.pwd(build.getWorkspace()).envs(build.getEnvironment(listener));
Proc proc = launcher.launch(ps);
int retcode = proc.join();

ProcStarter将在launcher实例指定的节点上运行命令。但是在使用之前,请至少先浏览一下以上所有类的javadocs,以上内容 并不是
直接从工作代码中复制粘贴。



 类似资料:
  • 我能够在本地实例上成功执行JMX文件,但在远程系统(从属)上执行失败。我使用的是最新版本的捷视通。这是我第二次面对这个问题。 你能告诉我这里有什么遗漏吗。我最初认为这是因为我已将脚本从“执行”中关闭,但这里并非如此。 我的脚本(JMX)有一个事务控制器(在线程组下),带有一些超文本传输协议请求。 从命令行执行的代码如下所示。当我从 Run 执行时,它的结果相同 sh Jmeter.sh -n -t

  • ansible会通过module setup来收集主机的系统信息,这些收集到的系统信息叫做facts,这些facts信息可以直接以变量的形式使用。 哪些facts变量可以引用呢?在命令行上通过调用setup module命令可以查看 $ ansible all -m setup -u root 怎样在playbook中使用facts变量呢,答案是直接使用: --- - hosts: all u

  • 问题内容: 如何在golang CLI中的远程计算机上执行命令?我需要编写一个golang CLI,该CLI可以通过密钥SSH到远程计算机并执行shell命令。此外,我需要能够做到这一步。例如,SSH进入一台机器(例如云堡垒),然后SSH进入另一台内部机器并执行shell命令。 我(尚未)找到任何示例。 问题答案: 尝试使用os / exec https://golang.org/pkg/os/e

  • 尝试使用从(本地机器)在远程机器上启动从机(通过Master上的命令行启动从机) slave.jar存在于上面的路径中,它失败了,错误如下: [07/01/13 14:16:11]启动从属代理$sshhread.runjava-jar D:/Jenkins/java.io.系统找不到指定的文件错误:无法启动用于test123的从属代理:系统找不到指定的文件java.lang.IOException

  • 问题内容: 是否可以从命令行安装jenkins插件? 我在谷歌搜索后找到了一个命令: 但这不起作用。 问题答案: 根据Jenkins 命令行界面文档,您需要使用 客户端 JAR文件(而不是正在使用的 服务器 WAR文件),您可以直接从Jenkins获得该文件,例如,通过http:// localhost:8080 / cli 然后,您可以使用以下JAR运行命令: 这将下载安装所需的插件及其任何依赖

  • 有没有从命令行安装jenkins插件的选项? 我在谷歌搜索后发现了一个命令: 但它不起作用。