不同jenkins下的凭据合并迁移

      有个需求需要将老的jenkins下的job和凭据迁移到新jenkins上。因为2套jenkins的内容不通,所以凭据加解密的密钥也不同,没办法直接将credentials.xml文件下的凭据内容直接复制追加到新jenkins的credentials.xml文件内(该存储凭据的文件在$JENKINS_HOME/目录下)。

      找了下资料(下面链接),由于python3和依赖没有装,用了粗糙的方法。直接通过脚本批量获取了待解密的密码串,然后通过管理员权限登入jenkins平台,在系统管理》脚本命令行中将需要解密的密钥串通过解密命令进行了解密。然后登入新的jenkins执行加密命令进行加密。并修改credentials.xml内容

//解密
println(hudson.util.Secret.fromString("{XXX=}").getPlainText())

//加密 xxx为明文密码
println(hudson.util.Secret.fromString("xxx").getEncryptedValue())

批量解析加密可以在脚本命令行执行

com.cloudbees.plugins.credentials.SystemCredentialsProvider.getInstance().getCredentials().forEach{
  it.properties.each { prop, val ->
    println(prop + ' = "' + val + '"')
  }
  println("-----------------------")
}

另外还需要考虑凭据是凭据类型:可以参考如何从凭据.xml解密詹金斯密码?

Jenkins中存储的加密密钥在哪里? | 经验摘录

https://xn--thibaud-dya.fr/jenkins_credentials.html

https://github.com/tweksteen/jenkins-decrypt/blob/master/decrypt.py

另外job迁移合并

     job迁移合并比较简单,将老jenkins的$JENKINS_HOME/jobs下的job通过rsync命令拷贝到新的jenkins的jobs目录下即可。

     日志和archive存储目录不需要可以剔除掉

        rsync --exclude=/**/log --exclude=/**/archive/ -avzP $JENKINS_HOME/jobs root@127.0.0.1:$JENKINS_HOME/jobs/

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值