如何通过 SSH 从 jenkins 中的远程服务器下载文件?

Kar*_*ick 7 ssh continuous-integration jenkins jenkins-plugins

我在 Jenkins 中使用 Publish Over SSH 插件将文件从本地传输到远程服务器并在远程服务器上执行一些命令。

但是,这个插件中似乎没有选项可以将文件从远程服务器下载到本地。

有人可以帮助我如何实现这一目标?

agu*_*ina 3

从管道的角度来看,我有这个解决方法

首先在您的 Jenkins 服务器实例中下载

stage("Download") {
  steps {
    fileOperations([fileDownloadOperation(password: "", targetFileName: "${params.APP_KEY}.zip", targetLocation: "${params.HOME_PATH}", url: "${params.ARTIFACT_URL}", userName: "")])
  }
}
Run Code Online (Sandbox Code Playgroud)

然后用 scp 指令复制

stage("Download last version") {
  sshagent(['xxxx-xxxx-xxxx-xxxx-xxxx']) {
    sh "scp ${params.APP_KEY_PATH}/${params.APP_KEY}.ZIP ${params.REMOTE_SERVER_USER}@${params.REMOTE_SERVER_URL}:${params.REMOTE_APP_KEY_PATH}"
  }
}
Run Code Online (Sandbox Code Playgroud)

为了简洁起见,我避免添加其他步骤,我稍微改变一下我所做的事情但想法是执行以下步骤

  1. 下载工件(本地)
  2. 解压(本地)
  3. 使用我想要在远程服务器(本地)中执行的脚本创建一个文件
  4. 将脚本复制到远程服务器
  5. 将解压后的工件复制到远程服务器
  6. 执行脚本