从Jenkins管道获取SSH步骤输出

6

我对Jenkins还很陌生,所以问题可能很显然。

我在Windows机器上安装了Jenkins,并且需要在远程nix机器上运行命令,在该机器上我已经有了ssh访问权限(用户名/密码)。我拥有一个流水线并使用ssh-steps插件来连接和执行命令,但我需要获取命令的输出来继续进行,但我找不到正确的方法来实现它。

def remote = [:]
remote.name = 'UAT'
remote.host = 'test.domain'
remote.user = 'username'
remote.password = 'pass'
remote.allowAnyHosts = true
stage('Remote SSH') {
  sshCommand remote: remote, command: "ls -ll"
}

我是否可以使用这个插件完成它,还是需要另一个插件?据我所知,这个插件是专门为在pipeline脚本中使用ssh而创建的。

2个回答

17

试一下这个:

def remote = [:]
remote.name = 'UAT'
remote.host = 'test.domain'
remote.user = 'username'
remote.password = 'pass'
remote.allowAnyHosts = true
stage('Remote SSH') {
   def commandResult = sshCommand remote: remote, command: "ls -ll"
   echo "Result: " + commandResult
}

这很难弄清楚,因为没有记录!


非常感谢!你是怎么找到这个解决方案的? - MoGol
我只是凭直觉尝试了一下 :-),但我无法在任何地方找到语法 @MoGol - Andrés Cuadros
你如何根据 commandResult 失败管道? - shorif2000

0
请注意,如果sshCommand失败,它将不返回任何内容。 你可以通过使用'failOnError: false'标志运行sshCommand并自己处理返回来解决这个问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接