笔者在前文《通过 CLI 管理 Jenkins Server》中介绍了如何通过 SSH 或客户端命令行的方式管理 Jenkins Server,限于篇幅,前文主要的目的是介绍连接 Jenkins Server 的方式。本文主要介绍 Jenkins Server 提供的常用命令。
本文主要演示以 SSH 的方式执行常见的 Jenkins CLI 命令,关于通过 SSH 连接 Jenkins Server 的内容,请参考前文。说明:本文的演示环境为 Ubuntu 16.04。
从 who-am-i 开始
代码语言:javascript复制$ ssh -l jack -p 8090 192.168.21.145 who-am-i
获取 Jenkins Server 的版本
代码语言:javascript复制$ ssh -l jack -p 8090 192.168.21.145 version
添加 agent
create-node 命令需要指定一个 xml 文件作为参数,这个 xml 文件中保存着新建 node 的配置信息。方便起见我们可以先使用 get-node 命令获得一个现有 node 的配置文件,然后修改其中的配置,并最终用来创建新的 node。比如我们当前有一个名为 testagent 的 node:
用下面的命令获得其配置信息:
代码语言:javascript复制$ ssh -l jack -p 8090 192.168.21.145 get-node testagent > testagent.xml
接下来复制一份 testagent.xml 文件,创建 myagent.xml 文件,并修改 myagent.xml 文件中的相关配置。比如把 agent 名称改为 myagent,host 修改为新 agent 的 IP 地址,credentialsId 改为具有适当权限的新 ID。最后用新的 myagent.xml 文件创建 node:
代码语言:javascript复制$ ssh -l jack -p 8090 192.168.21.145 create-node < myagent.xml
这样新的 node 就创建好了。当然,我们也可以使用 delete-node 命令删除一个 node。
安装 plugin
Jenkins 默认提供的操作 plugin 的 CLI 只有 list-plugins 和 install-plugin。list-plugins 用来罗列所有已安装的 plugins:
代码语言:javascript复制$ ssh -l jack -p 8090 192.168.21.145 list-plugins
如果为 list-plugins 指定参数(插件的名称),则只显示该插件的信息,该插件不存在就报错:
install-plugin 命令用来安装插件: install-plugin SOURCE ... [-deploy] [-name VAL] [-restart] 根据指定的 source 选项,分别可以从 URL、本地文件和 update center 安装插件。默认从 update center 安装插件,只用指定插件的短名称(ID)就可以了:
代码语言:javascript复制$ ssh -l jack -p 8090 192.168.21.145 install-plugin greenballs -deploy
-deploy 表示立即部署插件而不必等到下次重启 Jenkins。
如果指定的插件已经存在并且需要升级到新的版本,同样执行 install-plugin 命令就可以了:
代码语言:javascript复制$ ssh -l jack -p 8090 192.168.21.145 install-plugin pipeline-graph-analysis -restart
-restart 选项表示安装完成后重启 Jenkins。
等 Jenkins 重启完成后,发现插件已经被更新到了最新的版本:
注意:update center 安装插件时,会自动安装当前插件所依赖的插件。
通过本地的文件安装插件 下载 greenballs 插件到当前的目录中,然后执行命令:
代码语言:javascript复制$ 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 命令的帮助文档:
代码语言:javascript复制$ ssh -l jack -p 8090 192.168.21.145 help build
由上面的文档可知,可以通过 -f 和 -v 选项同步的执行 job 并获得控制台输出:
代码语言:javascript复制$ ssh -l jack -p 8090 192.168.21.145 build test -f -v
总结
Jenkins CLI 默认支持的命令很多,这里只是简单介绍了其中的几个,主要目的是帮助理解 Jenkins CLI 命令的基本用法。更多命令的详细用法请参考官方文档。
参考: Jenkins CLI