测试工作完成后,我想将代码部署为管道。如何从jenkins管道登录到另一个实例。
首先,我已将我的凭据保存在詹金斯-
还可以检查连接-
Jenkins SSH Connection Success
在管道脚本中,我正在传递-
管道{ 代理任何人
stages {
stage('Build') {
steps {
echo 'Building..'
}
}
stage('Test') {
steps {
echo 'Testing..'
}
}
stage('Deploy') {
steps {
echo 'Deploying....'
withCredentials([string(credentialsId: '28ebc607-22f5-4fad-91f2-97de971512d3', variable: 'NUSER'),string(credentialsId: '', variable: '')]) {
sh 'pwd'
sh 'ls -l'
}
}
}
}
}
我正在获取输出-
Jenkins credentials was excepted
错误-
错误:凭据“ 28ebc607-22f5-4fad-91f2-97de971512d3”的类型为“带有私钥的SSH用户名”,其中应为“ org.jenkinsci.plugins.plaincredentials.StringCredentials” 完成:失败
我做错了什么?最好的方法是什么?有什么建议吗?
答案 0 :(得分:0)
您可能需要使用ssh-agent plugin并用sshagent (credentials: ['deploy-dev']) { sh 'ssh server do thing' }
包裹ssh行
答案 1 :(得分:0)
我有一个类似的用例,并且我正在使用ssh-agent插件。您需要创建SSH类型的凭据,然后使用它包装代码。
sshagent(credentials: ['jenkins']) {
sh ''
}
我已经创建了我的证书,如下所示(使用私钥)
jenkins=[
username: 'test',
passphrase: '',
description : 'SSH credentials',
type: 'SSH',
privateKey: ''
]