jenkins withCredentials sshUserPrivateKey
https://codeleading.com/article/11015806881/.
Remeber sshCommand remote, remote infos have identityFile. identityFile need be at insdie identity.
Don’t understand identity be keep. Only can be used inside identity
def getRemoteHost(ip, user) {
def remote = [:]
remote.name = ip
remote.host = ip
remote.user = user
remote.identityFile = identity
remote.port = 22
remote.allowAnyHosts = true
return remote
}
pipeline {
agent any
environment {
ssh_ip = 'ooo.xxx.ooo.xxx'
ssh_user = 'ubuntu'
ssh_jenkins_key_uid = 'oooooooo-xxxx-xxxx-xxxx-oooooooooooo'
// SSH_CREDS = credentials('oooooooo-xxxx-xxxx-xxxx-oooooooooooo')
}
stages {
stage('ssh Command'){
steps {
withCredentials([sshUserPrivateKey(credentialsId: "${ssh_jenkins_key_uid}", keyFileVariable: 'identity')]) {
sshCommand remote: getRemoteHost(ssh_ip, ssh_user), command: "echo" //在远程服务器执行echo命令
}
}
}
}
}
def runCommand(cmd) {
def remote = [:]
remote.name = "${ssh_ip}"
remote.host = "${ssh_ip}"
remote.user = "${ssh_user}"
// remote.identityFile = identity
remote.port = 22
remote.allowAnyHosts = true
withCredentials([sshUserPrivateKey(
credentialsId: "${ssh_jenkins_key_uid}",
keyFileVariable: 'identity')])
{
remote.identityFile = identity
sshCommand remote: remote, command: cmd
}
}
pipeline {
agent any
environment {
ssh_ip = 'ooo.xxx.ooo.xxx'
ssh_user = 'ubuntu'
ssh_jenkins_key_uid = 'oooooooo-xxxx-xxxx-xxxx-oooooooooooo'
// SSH_CREDS = credentials('oooooooo-xxxx-xxxx-xxxx-oooooooooooo')
}
stages {
stage('ssh Command') {
steps {
echo 'whoami start...'
runCommand('whoami')
echo 'whoami success'
}
}
}
}