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

sak*_*ken 18 jenkins jenkins-plugins

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

Ped*_*dro 23

更新:TL; DRFilip Stachowiak的评论中,按照下面提供的链接,这是最简单的方法.

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

那么,你是否在两个Jenkins实例中使用相同的登记密钥(Jenkins中存储的加密密钥在哪里?)或者你可以做的是:

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

    <com.cloudbees.plugins.credentials.SystemCredentialsProvider plugin="credentials@1.22">
      <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>
    
    Run Code Online (Sandbox Code Playgroud)