笔者在前文《通过 CLI 管理 Jenkins Server》中介绍了如何通过 SSH 或客户端命令行的方式管理 Jenkins Server,限于篇幅,前文主要的目的是介绍连接 Jenkins Server 的方式。本文主要介绍 Jenkins Server 提供的常用命令。
本文主要演示以 SSH 的方式执行常见的 Jenkins CLI 命令,关于通过 SSH 连接 Jenkins Server 的内容,请参考前文。说明:本文的演示环境为 ubuntu 16.04。

从 who-am-i 开始



$ ssh -l jack -p 8090 192.168.21.145 who-am-i



jenkins 条件语句 jenkins 命令_jenkins 条件语句

获取 Jenkins Server 的版本



$ ssh -l jack -p 8090 192.168.21.145 version



jenkins 条件语句 jenkins 命令_xml_02

添加 agent

create-node 命令需要指定一个 xml 文件作为参数,这个 xml 文件中保存着新建 node 的配置信息。方便起见我们可以先使用 get-node 命令获得一个现有 node 的配置文件,然后修改其中的配置,并最终用来创建新的 node。比如我们当前有一个名为 testagent 的 node:

jenkins 条件语句 jenkins 命令_运维_03

用下面的命令获得其配置信息:



$ ssh -l jack -p 8090 192.168.21.145 get-node testagent > testagent.xml



jenkins 条件语句 jenkins 命令_Server_04

接下来复制一份 testagent.xml 文件,创建 myagent.xml 文件,并修改 myagent.xml 文件中的相关配置。比如把 agent 名称改为 myagent,host 修改为新 agent 的 IP 地址,credentialsId 改为具有适当权限的新 ID。最后用新的 myagent.xml 文件创建 node:



$ ssh -l jack -p 8090 192.168.21.145 create-node < myagent.xml



jenkins 条件语句 jenkins 命令_xml_05

这样新的 node 就创建好了。当然,我们也可以使用 delete-node 命令删除一个 node。

安装 plugin

Jenkins 默认提供的操作 plugin 的 CLI 只有  list-plugins 和 install-plugin。list-plugins 用来罗列所有已安装的 plugins:



$ ssh -l jack -p 8090 192.168.21.145 list-plugins



jenkins 条件语句 jenkins 命令_运维_06

如果为 list-plugins 指定参数(插件的名称),则只显示该插件的信息,该插件不存在就报错:

jenkins 条件语句 jenkins 命令_Server_07

install-plugin 命令用来安装插件:
install-plugin SOURCE ... [-deploy] [-name VAL] [-restart]
根据指定的 source 选项,分别可以从 URL、本地文件和 update center 安装插件。默认从 update center 安装插件,只用指定插件的短名称(ID)就可以了:



$ ssh -l jack -p 8090 192.168.21.145 install-plugin greenballs -deploy



-deploy 表示立即部署插件而不必等到下次重启 Jenkins。

如果指定的插件已经存在并且需要升级到新的版本,同样执行 install-plugin 命令就可以了:

jenkins 条件语句 jenkins 命令_运维_08



$ ssh -l jack -p 8090 192.168.21.145 install-plugin pipeline-graph-analysis -restart



-restart 选项表示安装完成后重启 Jenkins。

jenkins 条件语句 jenkins 命令_Jenkins_09

等 Jenkins 重启完成后,发现插件已经被更新到了最新的版本:

jenkins 条件语句 jenkins 命令_jenkins 条件语句_10

注意:update center 安装插件时,会自动安装当前插件所依赖的插件

通过本地的文件安装插件
下载 greenballs 插件到当前的目录中,然后执行命令:



$ ssh -l jack -p 8090 192.168.21.145 install-plugin = -deploy < greenballs.hpi -name greenballs



注意,此时需要通过 -name 选项指定插件的名称。

job 操作

Jenkins CLI 提供了丰富的命令来操作 job:
list-jobs:默认列出所有的 job
get-job:获得指定 job 的配置文件
copy-job:以现存的 job 为模板创建一个新的 job
create-job:创建一个新的 job,以标准输入中的内容作为配置信息
update-job:以配置文件中的内容更新 job
delete-job:删除 job
enable-job:enable job
disable-job:disable job
虽然 job 操作涉及的命令比较多,但是都相对的简单,这里不再一一演示。

触发 job

build 命令用来触发一个 job 任务,我们可以通过 help 命令来查看一下 build 命令的帮助文档:



$ ssh -l jack -p 8090 192.168.21.145 help build



jenkins 条件语句 jenkins 命令_Server_11

由上面的文档可知,可以通过 -f 和 -v 选项同步的执行 job 并获得控制台输出:



$ ssh -l jack -p 8090 192.168.21.145 build test -f -v



jenkins 条件语句 jenkins 命令_xml_12

总结

Jenkins CLI 默认支持的命令很多,这里只是简单介绍了其中的几个,主要目的是帮助理解 Jenkins CLI 命令的基本用法。