批量修改jenkins中job的分支名

业务需求 现将web项目中的分支从xiongan改为rongdong
方法一:手动登录到jenkins中找到项目一个一个的去配置中修改
方法二:通过sed批量修改job目录里面的config.xml文件

修改分支的时候 我们一般是通过jenkins的web界面-job-配置然后进行修改 其实在jenkins服务器中也有一个相应的配置文件可以控制分支 代码路径 定义的变量等 修改此配置文件和从web界面的配置里面修改是一样的
通过find去查找以项目名命名的目录 并进入jobs/jobs-name 进入后果然发现了config.xml文件

[root@jenkins xiongan-group-fmp-web]# find / -name xiongan-group-fmp-web
/var/lib/jenkins/workspace/xiongan-group-fmp-web
/var/lib/jenkins/jobs/xiongan-group-fmp-web
[root@jenkins xiongan-group-fmp-web]# ls /var/lib/jenkins/jobs/xiongan-group-fmp-web/
builds  config.xml  config.xml.bak  nextBuildNumber

进入jobs目录批量修改项目中的分支

查找一下现有的分支名是否和配置文件中有重复的项  以免修改错误
[root@jenkins jobs]# for i in `find . -name "xiongan-*-web"|grep -v gov|awk -F/ '{print $NF}'`;do grep -r "xiongan" $i/config.xml;done
        <name>*/xiongan</name>
        <name>*/xiongan</name>
        <name>*/xiongan</name>
        <name>*/xiongan</name>
        <name>*/xiongan</name>
        <name>*/xiongan</name>
        <name>*/xiongan</name>
        <name>*/xiongan</name>
        <name>*/xiongan</name>
        <name>*/xiongan</name>

确认没有之后进行修改,在修改的时候尽量备份一下 以免修改错误

[root@jenkins jobs]# for i in `find . -name "xiongan-*-web"|grep -v gov|awk -F/ '{print $NF}'`;do sed -i.bak 's#xiongan#rongdong#g' $i/config.xml;done
[root@jenkins xiongan-group-fmp-web]# ls /var/lib/jenkins/jobs/xiongan-group-fmp-web/
builds  config.xml  config.xml.bak  nextBuildNumber
[root@jenkins jobs]# for i in `find . -name "xiongan-*-web"|grep -v gov|awk -F/ '{print $NF}'`;do grep -r "rongdong" $i/config.xml;done
        <name>*/rongdong</name>
        <name>*/rongdong</name>
        <name>*/rongdong</name>
        <name>*/rongdong</name>
        <name>*/rongdong</name>
        <name>*/rongdong</name>
        <name>*/rongdong</name>
        <name>*/rongdong</name>
        <name>*/rongdong</name>
        <name>*/rongdong</name>

已经全部修改为rongdong
重启jenkins是配置文件生效

[root@jenkins xiongan-group-fmp-web]# systemctl restart  jenkins
[root@jenkins xiongan-group-fmp-web]# systemctl status jenkins
● jenkins.service - LSB: Jenkins Automation Server
   Loaded: loaded (/etc/rc.d/init.d/jenkins; bad; vendor preset: disabled)
   Active: active (running) since Mon 2022-06-27 10:09:20 CST; 1s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 29292 ExecStop=/etc/rc.d/init.d/jenkins stop (code=exited, status=0/SUCCESS)
  Process: 29337 ExecStart=/etc/rc.d/init.d/jenkins start (code=exited, status=0/SUCCESS)
    Tasks: 30
   Memory: 238.6M
   CGroup: /system.slice/jenkins.service
           └─29361 /usr/bin/java -Dcom.sun.akuma.Daemon=daemonized -Djava.awt.headless=true -DJENKINS_HOME=/var/lib/jenkins -jar /usr/lib/jenkins/jenkins.war --logfile=...

Jun 27 10:09:19 jenkins systemd[1]: Starting LSB: Jenkins Automation Server...
Jun 27 10:09:19 jenkins runuser[29342]: pam_unix(runuser:session): session opened for user root by (uid=0)
Jun 27 10:09:20 jenkins runuser[29342]: pam_unix(runuser:session): session closed for user root
Jun 27 10:09:20 jenkins systemd[1]: Started LSB: Jenkins Automation Server.
Jun 27 10:09:20 jenkins jenkins[29337]: Starting Jenkins [  OK  ]

登录jenkins查看修改成功


image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。