【问题标题】:Single SSH connection in Jenkins pipelineJenkins 管道中的单一 SSH 连接
【发布时间】:2019-03-27 16:28:45
【问题描述】:

我已经创建了用于在生产环境中构建项目的 Jenkinsfile,并且管道如下所示:

pipeline {
  agent any
  stages {
    stage('Pull') {
      steps {
        sh '''ssh ${SSH_USER}@${SERVER_ADDRESS} <<EOF
              cd ${SOURCE_FOLDER}/project 
              git pull
              git status
           EOF'''
      }
    }
    stage('Composer') {
      parallel {
        stage('Composer') {
          steps {
            sh '''ssh ${SSH_USER}@${SERVER_ADDRESS} <<EOF 
                  docker run --rm -v ${SOURCE_FOLDER}/project:/app composer/composer:latest install
               EOF'''
          }
        }
        stage('Composer 2') {
          steps {
            sh '''ssh ${SSH_USER}@${SERVER_ADDRESS} <<EOF
                  docker run --rm -v ${SOURCE_FOLDER}/project/sub:/app 
composer/composer:latest install
               EOF'''
          }
        }
      }
   }
  }
 }

有没有办法将所有阶段都放在一个 SSH 连接中,以最大限度地减少开销和连接数?

我通过创建密钥并将公钥粘贴到生产机器上手动完成了所有 SSL 工作。

【问题讨论】:

    标签: docker jenkins ssh jenkins-pipeline


    【解决方案1】:

    您可以为连接创建一个函数并将 SSH_USER 和 SERVER_ADDRESS 作为输入参数传递给该函数。从所有阶段调用此函数。

    【讨论】:

      猜你喜欢
      • 2022-10-24
      • 1970-01-01
      • 2019-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-29
      • 2020-04-28
      • 1970-01-01
      相关资源
      最近更新 更多