1 Jenkins Job Builder简介
顾名思义,Jenkins Job Builder(以下简称“JJB”)就是用来创建Jenkins任务的工具。为了简化配置大量Jenkins任务的工作量,Openstack采用更容易阅读的基于yaml或json格式的文件来编辑任务,然后使用JJB将yaml或json格式的配置转化为可以被Jenkins理解的XML格式的任务配置文件,并更新到Jenkins中。
工作原理很简单,Jenkins创建的任务实际是以XML文件的格式保存在$JENKINS_HOME/jobs/[job-name]/config.xml的,JJB能够将YAML转化为XML文件(借助Jenkins提供的命令接口),并更新到Jenkins中。如下图所示:
具体来说,JJB同Jenkins的“交流”是通过Jenkins API(默认通过配置文件/etc/jenkins_jobs/jenkins_jobs.ini定义Jenkins服务端),从而创建和修改任务都不需要restart或reload Jenkins服务。并且Jenkins会检查JJB提供的XML文件,如果检查不通过那么JJB的执行会返回错误。
使用JJB的优点也是显而易见的:
- 无需通过前台页面来进行任务创建,方便puppet、docker等进行服务器配置管理或容器的构建;
- YAML文件作为配置可以通过版本管理工具管理起来;
- 可以通过定义job-template或参数,简化任务配置,有效减少工作量。
2 Jenkins Job Builder使用方法
简单介绍一下测试配置、更新任务以及删除任务的方法,也很简单,只需要一个“jenkins-jobs”命令即可。
2.1 测试配置
当任务配置的yaml文件编写完成之后,可以通过“jenkins-jobs test”测试配置格式和内容是否正确。
jenkins-jobs test path/to/myjob.yaml
若测试通过,将输出XML格式的任务配置,如果想将测试的XML格式的任务配置输出到文件,可以添加“-o”参数:
jenkins-jobs test -o output path/to/myjob.yaml
2.2 更新任务
测试通过后,可以使用“jenkins-jobs update”命令将yaml文件定义的任务更新到jenkins中。
jenkins-jobs [--conf jenkins_jobs.ini] update path/to/job1.yaml
update命令需要指定保存有Jenkins服务器信息的配置文件,用“–conf”来显示指定该配置文件,如果不显示指定,则默认读取“/etc/jenkins_jobs/jenkins_jobs.ini”文件。该配置文件保存有jenkins的url和登录信息,内容如下:
[jenkins]
user=jenkins
password=password
url=http://localhost:8081/jenkins