首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sshagent和jenkinsfile

sshagent和jenkinsfile
EN

DevOps用户
提问于 2018-03-27 09:33:16
回答 1查看 23K关注 0票数 8

我是詹金斯档案的新手。我以前从GUI中配置了Jenkins任务,现在我们正在升级服务器以使用Jenkinsfile。我的工作包含一个需要SSH到另一个服务器的部分。为此,我以前使用GUI上的sshagent插件来指定我的键。但是,在jenkinsfile机制上,这是行不通的。

首先要做的是:除了使用jenkinsfile之外,我们还使用了在码头构建。我在一些地方读到,码头可能与必要的插件冲突,所以我试图删除对接,开始一个干净的工作与“代理任何”,并试图测试。

所以我的新工作是这样的:

代码语言:javascript
复制
    @NonCPS  // Necessary to allow .each to work.
def changelist() {
    def changes = ""
    currentBuild.changeSets.each { set ->
        set.each { entry ->
            changes += "${entry.author.id} "
        }
    }
    changes
}

pipeline {
    agent none
    stages {
            stage('test') {
            agent any
            steps {
                sshagent ( ['a-jenkins-credential']) {
    sh '''
ssh -vv myuser@myserver echo testing connection || true
ssh-add -L
echo done running remote windows test
'''
  }
            }
        }


}
}

在同一台服务器上,但是使用jenkins GUI,这是完美无缺的,但是在jenkinsfile管道上这会产生:

代码语言:javascript
复制
FATAL: [ssh-agent] Could not find specified credentials

然后继续运行,然后在ssh命令上失败。有趣的是,这个工作使用完全相同的键成功地从GIT中提取,所以它不是没有安装在服务器上。

EN

回答 1

DevOps用户

回答已采纳

发布于 2018-03-27 09:40:03

发现了问题:

我正在使用GUI中的人类可读的密钥名。需要使用密钥的UUId ID (这是在凭据屏幕的名称旁边指定的)

代码语言:javascript
复制
steps {
            sshagent ( ['THIS-SHOULD-HAVE-BEEN-A-UNIQUE-ID-INSTEAD-OF-A-NAME']) {
票数 10
EN
页面原文内容由DevOps提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://devops.stackexchange.com/questions/3742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档