如何将凭证从一个jenkins实例导出到另一个jenkins实例?

问题描述 投票:15回答:4

我正在使用Jenkins中的凭证插件来管理我的团队构建的git和数据库访问的凭据。我想将凭证从一个jenkins实例复制到另一个独立的jenkins实例。我该怎么做呢?

jenkins jenkins-plugins
4个回答
21
投票

更新:TL; DR在Filip Stachowiak的评论中,按照下面提供的链接,这是最简单的方法。万一它不适合你继续阅读。

复制$ HUDSON HOME / credentials.xml不是解决方案,因为Jenkins会对密码进行加密,除非两者共享一个公用密钥,否则这些密码不能被其他实例解密。

因此,要么在两个Jenkins实例(qazxsw poi)中使用相同的加密密钥,要么你可以做的是:

  1. 在第二个Jenkins实例中创建需要共享的相同用户/密码,以便生成有效密码
  2. 真正重要的是两个credentials.xml中的用户ID都是相同的。为此(请参阅下面的credentials.xml示例),用户:Jenkins标识符Where's the encryption key stored in Jenkins?在两个credentials.xml中必须相同 <id>c4855f57-5107-4b69-97fd-298e56a9977d</id>

2
投票

我也面临同样的问题。对我有用的是我将credentials.xml,config.xml和secretts文件夹从现有的jenkins复制到新实例。 jenkins重新启动后事情很好。


2
投票

这对我有用。

在Jenkins中创建一个获取凭据并将其写入输出的作业。如果Jenkins用****替换输出中的密码,只需先对其进行模糊处理(在每个字符之间添加一个空格,反转字符,base64编码等)

我使用Powershell作业对其进行了base64编码:

<com.cloudbees.plugins.credentials.SystemCredentialsProvider plugin="[email protected]">
  <domainCredentialsMap class="hudson.util.CopyOnWriteMap$Hash">
    <entry>
      <com.cloudbees.plugins.credentials.domains.Domain>
        <specifications/>
      </com.cloudbees.plugins.credentials.domains.Domain>
      <java.util.concurrent.CopyOnWriteArrayList>                
        <com.cloudbees.plugins.credentials.impl.UsernamePasswordCredentialsImpl>
          <scope>GLOBAL</scope>
          <id>c4855f57-5107-4b69-97fd-298e56a9977d</id>
          <description>Para SVN</description>
          <username>jenkins</username>
          <password>J1ztA2vSXHbm60k5PjLl5jg70ZooSFKF+kRAo08UVts=    
          </password>                        
        </com.cloudbees.plugins.credentials.impl.UsernamePasswordCredentialsImpl>
      </java.util.concurrent.CopyOnWriteArrayList>
    </entry>
  </domainCredentialsMap>
</com.cloudbees.plugins.credentials.SystemCredentialsProvider>

然后使用Powershell将base64字符串转换回常规字符串:

[convert]::ToBase64String([text.encoding]::Default.GetBytes($mysecret))

0
投票

您是否尝试将$ JENKINS_HOME / users文件夹和$ JENKINS_HOME / credentials.xml文件复制到另一个Jenkins实例?

© www.soinside.com 2019 - 2024. All rights reserved.