系列目录
Jenkins Cli介绍Jenkins Cli为Jenkins提供的一个cli工具,此工具功能非常强大,可以完成诸如重启jenkins,创建/删除job,查看job控制台输出,添加/删除节点等功能.但是实际工作中,像创建任务这样的配置显然cli非常吃力,不如直接在web管理界面操作,但是对于重启Jenkins,查看诊断信息等,执行一个手动构建任务等,则直接使用cli比进入web管理界面操作更加方便.因此什么时候web管理界面,什么时候使用cli,要看是否有利于提升生产力,是否有利于提升个人能力,是否有利于提升团队的自动化作业水平这些指标,不要以为使用cli就代表水平高而盲目使用cli从而导致效率下降或者问题增多.
jenkins cli可以通过jenkins提供的jar包来创建一个cli环境或者使用ssh客户端来执行cli,本节也会分别介绍它们.
使用jenkins自身客户端来执行cli我们打开jenkins的安装目录,进入到war\WEB-INF目录,此目录下面有一个jenkins-cli.jar文件,它便是用来创建jenkins cli环境的.我们在这个目录下打开命令行工具,然后执行java -jar jenkins-cli.jar help便可以看到它的输出帮助信息
可以看到-s选项可以指定一个url,这个url就是jenkins web管理界面的url,现在是测试环境,url为:8080,当然想要执行cli,还需要输入你的用户名和密码,这里通过 -auth选项指定用户名密码.
我们把上以信息综合起来,组成以下命令
java -jar jenkins-cli.jar -s :8080 -auth tylerzhou:密码 help以上语句中,help为要执行的命令.
需要注意的是,这里执行的命令直接是命令名称,不能加像其它命令行工具- -- 或/标识
如果你找不到Jenkins-cli.jar,可以通过在浏览器输入:8080/jnlpJars/jenkins-cli.jar进行下载保存,注意把以上地址替换为您的实际地址
点击回车,可以看到所有Jenkins cli可执行的命令和命令的简短描述.下面介绍几个可能比较常用的命令
1) list-jobs,可以列出Jenkins里所有的job,就像打开jenkins web管理界面首页看到的那样.
命令如下
java -jar jenkins-cli.jar -s :8080 -auth 您的账户:您的密码 list-jobs需要注意的是,Jenkins cli需要每次执行命令的时候都带上java -jar jenkins-cli.jar -s :8080 -auth 您的账户:您的密码+要执行的命令,而不是进入一个环境后只输入命令就行了.
2) build+要构建的job名,即可通过cli来触发一次构建.
构建成功后,我们打开web管理界面便可以看到多一次构建.
cli构建命令是一个非常实用的命令,虽然我们的大部分任务都是基于git的一个自动化流程.但是有些时候也需要手动执行一些脚本来完成工作中的一些自动化操作.如果每次打开web管理界面手动执行显然不如通过cli来执行效率高.
3) restart/safe-restart 可以重启jenkins服务,通过它们的名称可以看到safe-restart为安全重启,它会等到所有的操作都完成然后执行重启
4) clear-queue 清除构建队列.没有实际jenkins使用经验的朋友可能不知道,由于Jenkins自身原因或者我们脚本测试不够充分导致的bug,有时候会造成Jenkins构建阻塞,一直处于构建状态无法完成,这时候通过web管理界面点击取消构建也无法取消掉.此时呆以尝试这个命令.当然也可能仍然无法终止,此时需要使用restart命令暴力重启服务.
使用api token登陆以上我们都是通过用户名:密码的方式来登陆cli,这样把明文密码暴露出来是不可取的,其实Jenkins cli还可以通过用户名:apitoken的方式来实现登陆cli.下面我们介绍五如何设置api token.
我们打开jenkins web管理界面,点击左侧的People按钮,在出现的界面中会列出可能不止一个用户,此时点击自身登陆jenkins的用户名,在进入的界面中点击configure按钮,在出现的界面中找到Api token栏
点击Add new token便会出现一个生成token的小界面,输入token的名称,可以是任意名称,然后点击generate,这时候就会生成一个token
注意一定要把这个token复制下来然后保存到其它地方,下次再找开的时候就看不到它了.
完成后点击保存.
此时我们在cli中输入以下命令
java -jar jenkins-cli.jar -s :8080 -auth tylerzhou:11f52cef1324556a41d966083ffcf0ac1b其中tylerhzou为用户名,后面就是我们刚才创建的token
如果执行成功,以上命令就输出jenkins cli的所有命令.
把命令信息保存到单独文件