在Jenkinsfile上执行ssh步骤

时间:2019-01-19 23:02:48

标签: jenkins jenkins-pipeline

我正在尝试Jenkins的新声明式方法,以完成通过ssh部署应用程序的简单任务,我有一个shell脚本deploy.sh,该脚本可以完成基本的工作git pullgit clone并使用docker-compose进行部署,我可以在笔记本电脑上以cat deploy.ssh | ssh user@remote的身份运行它。

我找不到Jenkinsfile上的方法。我已经尝试了几天。

stage('deploy') {
   steps {
      sh 'cat deploy.sh | ssh user@remote'
   }
}

我走错了路吗?还有另一种部署代码的方法吗?

1 个答案:

答案 0 :(得分:0)

使用名为 SSH管道步骤的Jenkins插件 https://plugins.jenkins.io/ssh-steps/

安装此插件后,您可以按以下方式定义您的Jenkins文件:

pipeline {
agent any
stages {
    stage('Deploy') {
        steps {
            echo 'Deploying..'
            
             script{
                 node {
                    def remote = [:]
                    remote.name = "node-1"
                    remote.host = "10.10.10.10"
                    remote.user = 'username'
                    remote.password = 'password'
                    remote.allowAnyHosts = true
                      stage('Remote SSH') {
                        writeFile file: 'abc.sh', text: 'ls'
                        sshCommand remote: remote, command: 'for i in {1..5}; do echo -n \"Loop \$i \"; date ; sleep 1; done'
                        sshPut remote: remote, from: 'abc.sh', into: '.'
                      }
                }
            }
        }
    }}}

} }