在前面的示例文章中介绍了简单的脚本来实现Job相关的8种操作,这篇文章继续介绍一下如何使用脚本进行批处理的操作,比如一次性创建或者删除20个job等。
环境准备
使用Jenkins LTS 版本 2.164.3进行验证,执行之前需保证CSRF复选框被选中状态。注意如果使用liumiaocn/jenkins:2.164.3这个LTS版本的话,此版本缺省将CSRF复选框给取消了,也就是不需要Crumb进行操作的设定,需要设定回来。
脚本位置
脚本和相关示例放置在easypack下Jenkins相关的路径之下
脚本路径:https://github.com/liumiaocn/easypack/blob/master/containers/alpine/jenkins/mgnt_jenkins_demo.sh
使用介绍
使用示例如下所示:
liumiaocn:jenkins liumiao$ sh mgnt_jenkins_demo.sh
[JENKINS Crumb]: Jenkins-Crumb:3da51c7acf3b01721adf4c6f6e839311
Usage: mgnt_jenkins_demo.sh ACTION DEMO-PATTERN
ACTION: JOBCREATE|JOBEXEC|JOBDELETE|JOBCHECK|JOBENABLE|JOBDISABLE|JOBCOPY|LOGCHECK|BATCH
eg: mgnt_jenkins_demo.sh
liumiaocn:jenkins liumiao$
创建多个Job
创建之前,状态如下所示
使用BATCH方式创建job,执行日志如下所示
liumiaocn:jenkins liumiao$ sh mgnt_jenkins_demo.sh BATCH JOBCREATE test_pipelinejob 20 when
[JENKINS Crumb]: Jenkins-Crumb:3da51c7acf3b01721adf4c6f6e839311
## BATCH [JOBCREATE] Operation begins :
Operation for test_pipelinejob_1 ...
[JENKINS Crumb]: Jenkins-Crumb:3da51c7acf3b01721adf4c6f6e839311
JOB Creation Begins ...
JOB Creation Ends ...
...省略
Operation for test_pipelinejob_20 ...
[JENKINS Crumb]: Jenkins-Crumb:3da51c7acf3b01721adf4c6f6e839311
JOB Creation Begins ...
JOB Creation Ends ...
liumiaocn:jenkins liumiao$
从页面上也可以看到创建的20个job的信息
执行Job
可以通过外部环境变量的设定来执行被2整除或者被其他数值整除的部分才会执行,比如如下命令为执行偶数部分的Job
liumiaocn:jenkins liumiao$ export BATCH_MOD_SETTING=2
liumiaocn:jenkins liumiao$ sh mgnt_jenkins_demo.sh BATCH JOBEXEC test_pipelinejob 20
[JENKINS Crumb]: Jenkins-Crumb:3da51c7acf3b01721adf4c6f6e839311
## BATCH [JOBEXEC] Operation begins :
Operation for test_pipelinejob_1 [BATCH_MOD_SETTING=2] skipped ...
...省略
Operation for test_pipelinejob_20 ...
[JENKINS Crumb]: Jenkins-Crumb:3da51c7acf3b01721adf4c6f6e839311
JOB [test_pipelinejob_20] Build Begins ...
JOB [test_pipelinejob_20] Build Ends ...
liumiaocn:jenkins liumiao$
从执行结果中也可看到偶数部分的Job被执行了
总结
这个脚本仍然只是考虑了正常逻辑的一个简单使用示例,可以根据需要进行批处理的控制,由于示例中要求Job名是规范的,实际使用的时候可以考虑使用Job列表名称进行维护即可。
资深架构师,PMP、OCP、CSM、HPE University讲师,EXIN DevOps Professional与DevOps Master认证讲师,曾担任HPE GD China DevOps & Agile Leader,帮助企业级客户提供DevOps咨询培训以及实施指导。熟悉通信和金融领域,有超过十年金融外汇行业的架构设计、开发、维护经验,在十几年的IT从业生涯中拥有了软件开发设计领域接近全生命周期的经验和知识积累,著有企业级DevOps技术与工具实战。