jenkins提供了CLI(命令行接口),使我们可以通过命令行,对jenkins进行操作。设想,要创建100个任务,每个任务只有执行的命令不一样,难道要在jenkins上操作,创建100个任务,然后每个人物单独设置?那样的话,效率就太低了。
有了CLI,我们可以写一个脚本,来进行任务的创建。当然CLI不只可以进行任务的创建,还可以做其他很多的操作。
在jenkins的 manage jenkins 选项中,有jenkisn CLI选项。
该选项,将jenkins的CLI,都进行了列举。并且还说明了,每个命令的用法。首先是将红色框中jenkins-cli.jar这个包,进行下载,因为jenkins的CLI的命令,都需要使用该包。
然后使用提供的命令,测试,是否可以访问jenkins。
java -jav jenkins-cli.jar -s http://172.16.66.50:8080 help
如果有返回信息,说明访问jenkins成功。但是,此时是没有权限,执行一些操作的。比如:
java -jav jenkins-cli.jar -s http://172.16.66.50:8080 who-am-i
就会提示没有执行错误,没有权限。
CLI是通过ssh和jenkins通信的,而对于CLI的一些命令,需要SSH的key。因此将执行CLI命令的用户的SSH key,添加到jenkins的对应用户的key里面就行了。
在用户的界面中,显示了jenkins上的各个用户。我使用的jenkins是以bjatp_ci作为执行用户的。因此要修改这个bjatp_ci。
进入到该用户,选择 configuration, 进行配置。
在SSH public keys中,将用户的SSH keys填入。最后保存。
然后再执行该命令,就会显示命令执行结果。
SSH key配置完毕后,就可以执行CLI的所有命令了。
创建任务
使用create-job命令,来创建一个job。但是创建job,需要一个XML文件,该文件描述了job的配置信息。
该XML配置文件,可以通过 get-job 命令,来获取jenkins中已存在命令的job配置信息。
以下命令,就获取了test这个job的配置信息。
java -jav jenkins-cli.jar -s http://172.16.66.50:8080 get-job test > test_config.XML
该XML文件,就是任务的配置信息,可以修改这个配置文件,从而利用这个配置文件去创建新的任务,或者更新现有的任务。
以下命令,就创建了test1这个任务,使用刚刚的配置文件。
java -jav jenkins-cli.jar -s http://172.16.66.50:8080 get-job test1 <test_config.XML
有了这个命令,批量创建任务,就很简单了,将该命令,写入到脚本中,就可以批量创建任务了。
Jenkins还提供了其他的一些命令,查看使用说明就行。如果是需要XML文件的,可以从jenkins上已有的,获取XML文件,然后修改该XML文件即可。