栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

不同jenkins下的凭据合并迁移

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

不同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/

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/277873.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号