Использование множества учетных данных с sshCommand на удаленном сервере в Jenkins - PullRequest
1 голос
/ 25 сентября 2019

У меня есть декларативный конвейер для подключения к удаленному серверу, как показано ниже:

pipeline {
  agent any

  environment {
    SERVER_CREDENTIAL = 'server'
    GIT_CREDENTIAL = 'git'
  }

  stages {
    stage("Connect remote server") {
      steps {
        withCredentials([[$class: 'UsernamePasswordMultiBinding', credentialsId: "${SERVER_CREDENTIAL}", usernameVariable: 'username', passwordVariable: 'password']]) {
          script {
          def remote = [:]
          remote.name = "server"
          remote.host = "x.x.x.x"
          remote.allowAnyHosts = true
          remote.user = "$username"
          remote.password = "$password"

          sshCommand remote: remote, command: "cd /www && git fetch"
        }
      }
    }
  }
}

Я могу подключиться к серверу, но git отказал в разрешении, потому что на этом сервере нет ключа ssh.Я тоже не хочу хранить sshkey.Есть ли способ запустить git fetch с моими учетными данными Jenkins git.Пытался исследовать, но ничего не помогло.

Я тоже пробовал это, но не работает

sshagent(["$GIT_CREDENTIAL"]) {
  withCredentials(...) {
    remote.agentForwading = true
    sshCommand ...
  }
}

Кстати, можно ли разбивать команды в отдельных строках кода, которые сохраняют предыдущее состояние?

...