使用凭据插件时 jenkins-job-builder 生成错误的 xml

沃莱克

我们正在使用 jenkins-job-builder 来生成 jenkins 作业,当我们尝试使用 ssh-credentials 插件时,我们有一个持续的问题。当我们创建它试图使用SSH密钥的作业将失败,一个新的工作java.io.IOException: [ssh-agent] Could not find specified credentials,但如果我们打ConfigureSave它开始工作。

在credentials.xml 中,密钥定义如下所示:


 <com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey plugin="[email protected]">
          <scope>GLOBAL</scope>
          <id>jenkins-key</id>
          <description>Jenkins user private key</description>
          <username>root</username>
          <privateKeySource class="com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey$DirectEntryPrivateKeySource">
            <privateKey>{A_WORKING_PRIVATE_KEY}</privateKey>
          </privateKeySource>
   </com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey>

关于文档(https://docs.openstack.org/infra/jenkins-job-builder/wrappers.html?highlight=credentials#wrappers.ssh-agent-credentials)使用定义的凭据的作业定义应如下所示:

- wrapper:
    name: jenkins-key
    wrappers:
      - ssh-agent-credentials:
          user: 'root'

[...]

- job:
    name: jobxyz
    disabled: false
    project-type: freestyle
    node: jenkins-slave
    wrappers:
        - jenkins-key
    builders:
      - shell: |
          [...]

生成的作业 xml 中的相应部分如下所示:

   <buildWrappers>
      <com.cloudbees.jenkins.plugins.sshagent.SSHAgentBuildWrapper>
        <user>root</user>
        <ignoreMissing>false</ignoreMissing>
      </com.cloudbees.jenkins.plugins.sshagent.SSHAgentBuildWrapper>
    </buildWrappers> 

但是当我们尝试运行作业时,我们会收到上述错误:

FATAL: 
java.io.IOException: [ssh-agent] Could not find specified credentials
    at com.cloudbees.jenkins.plugins.sshagent.SSHAgentBuildWrapper.preCheckout(SSHAgentBuildWrapper.java:209)
    at jenkins.scm.SCMCheckoutStrategy.preCheckout(SCMCheckoutStrategy.java:76)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:498)
    at hudson.model.Run.execute(Run.java:1818)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    at hudson.model.ResourceController.execute(ResourceController.java:97)
    at hudson.model.Executor.run(Executor.java:429)
FATAL: [ssh-agent] Could not find specified credentials
java.io.IOException: [ssh-agent] Could not find specified credentials
    at com.cloudbees.jenkins.plugins.sshagent.SSHAgentBuildWrapper.preCheckout(SSHAgentBuildWrapper.java:209)
    at jenkins.scm.SCMCheckoutStrategy.preCheckout(SCMCheckoutStrategy.java:76)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:498)
    at hudson.model.Run.execute(Run.java:1818)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    at hudson.model.ResourceController.execute(ResourceController.java:97)
    at hudson.model.Executor.run(Executor.java:429)
Finished: FAILURE

如果我们转到 jenkins 网页,并在configure & save不更改配置中的任何内容的情况下点击,则作业的新 xml 更改为:

  <buildWrappers>
      <com.cloudbees.jenkins.plugins.sshagent.SSHAgentBuildWrapper plugin="[email protected]">
        <credentialIds>
          <string>jenkins-key</string>
        </credentialIds>
        <ignoreMissing>false</ignoreMissing>
      </com.cloudbees.jenkins.plugins.sshagent.SSHAgentBuildWrapper>
    </buildWrappers>

我很确定这不应该像这样工作,但我有点不确定接下来要做什么。以下是一些版本:

詹金斯作业生成器版本:2.10.1

詹金斯版。2.172

SSH 凭证版本:1.15

沃莱克

似乎在一天结束时,解决方案是忘记使用凭证包装器,而是插入原始 xml:

wrappers:
        - raw:
            xml: |
              <com.cloudbees.jenkins.plugins.sshagent.SSHAgentBuildWrapper plugin="[email protected]">
                  <credentialIds>
                      <string>jenkins-key</string>
                  </credentialIds>
                  <ignoreMissing>false</ignoreMissing>
              </com.cloudbees.jenkins.plugins.sshagent.SSHAgentBuildWrapper>

这会生成正确的 xml。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Jenkins SCM Sync配置插件和Jenkins Job Builder有什么区别?

来自分类Dev

在Jenkins Job的config.xml中管理插件版本

来自分类Dev

如何在python中将jenkins作业配置config.xml转换为YAML格式以用于jenkins-job-builder?

来自分类Dev

如何在python中将jenkins作业配置config.xml转换为YAML格式以用于jenkins-job-builder?

来自分类Dev

使用 Jenkins Job Builder 将 Jenkins 作业放置在文件夹中

来自分类Dev

Jenkins Job Builder:项目级变量

来自分类Dev

Jenkins Job Builder-自动管道作业

来自分类Dev

Is there a xsd or xml schema for job in Jenkins?

来自分类Dev

从xml导入Job到Jenkins

来自分类Dev

Teamcity相当于Jenkins DSL或Jenkins Job Builder?

来自分类Dev

等同于Jenkins DSL或Jenkins Job Builder的Teamcity?

来自分类Dev

使用带有Jenkins Job DSL插件错误的Grape下载依赖项

来自分类Dev

将Jenkins xml配置为基于Groovy的Jenkins Job DSL

来自分类Dev

使用 jenkins python 模块 build_job(job_name, parameters=) 方法时出现 500 服务器错误

来自分类Dev

Jenkins Job Builder:将 Job 放在现有文件夹中

来自分类Dev

Job DSL生成的Jenkins项目不会触发。

来自分类Dev

Jenkins Ivy插件:寻找错误的ivy.xml文件

来自分类Dev

如何在Jenkins中使用Job DSL插件删除脚本?

来自分类Dev

如何使用Job DSL配置Jenkins GitHubPullRequestBuilder插件

来自分类Dev

如何使用 Nokogiri XML Builder 从 Rails DB 动态生成 xml 标签

来自分类Dev

pytest测试失败时Jenkins Job失败

来自分类Dev

Jenkins Job-Builder:如何正确包含外部文件中的作业模板?

来自分类Dev

使用REST API获取Jenkins Job的参数?

来自分类Dev

使用Jenkins Job DSL推送标签

来自分类Dev

使用jenkins API时,reconfig_job失败

来自分类Dev

使用简单XML生成gradle错误

来自分类Dev

Jenkins Pdepend插件错误

来自分类Dev

Jenkins的“ Stash Pullrequest Builder”插件无法连接到Stash

来自分类Dev

rtMavenRun()人工插件未使用jenkins中配置的凭据

Related 相关文章

  1. 1

    Jenkins SCM Sync配置插件和Jenkins Job Builder有什么区别?

  2. 2

    在Jenkins Job的config.xml中管理插件版本

  3. 3

    如何在python中将jenkins作业配置config.xml转换为YAML格式以用于jenkins-job-builder?

  4. 4

    如何在python中将jenkins作业配置config.xml转换为YAML格式以用于jenkins-job-builder?

  5. 5

    使用 Jenkins Job Builder 将 Jenkins 作业放置在文件夹中

  6. 6

    Jenkins Job Builder:项目级变量

  7. 7

    Jenkins Job Builder-自动管道作业

  8. 8

    Is there a xsd or xml schema for job in Jenkins?

  9. 9

    从xml导入Job到Jenkins

  10. 10

    Teamcity相当于Jenkins DSL或Jenkins Job Builder?

  11. 11

    等同于Jenkins DSL或Jenkins Job Builder的Teamcity?

  12. 12

    使用带有Jenkins Job DSL插件错误的Grape下载依赖项

  13. 13

    将Jenkins xml配置为基于Groovy的Jenkins Job DSL

  14. 14

    使用 jenkins python 模块 build_job(job_name, parameters=) 方法时出现 500 服务器错误

  15. 15

    Jenkins Job Builder:将 Job 放在现有文件夹中

  16. 16

    Job DSL生成的Jenkins项目不会触发。

  17. 17

    Jenkins Ivy插件:寻找错误的ivy.xml文件

  18. 18

    如何在Jenkins中使用Job DSL插件删除脚本?

  19. 19

    如何使用Job DSL配置Jenkins GitHubPullRequestBuilder插件

  20. 20

    如何使用 Nokogiri XML Builder 从 Rails DB 动态生成 xml 标签

  21. 21

    pytest测试失败时Jenkins Job失败

  22. 22

    Jenkins Job-Builder:如何正确包含外部文件中的作业模板?

  23. 23

    使用REST API获取Jenkins Job的参数?

  24. 24

    使用Jenkins Job DSL推送标签

  25. 25

    使用jenkins API时,reconfig_job失败

  26. 26

    使用简单XML生成gradle错误

  27. 27

    Jenkins Pdepend插件错误

  28. 28

    Jenkins的“ Stash Pullrequest Builder”插件无法连接到Stash

  29. 29

    rtMavenRun()人工插件未使用jenkins中配置的凭据

热门标签

归档