筆者在前文《通過(guò) CLI 管理 Jenkins Server》中介紹了如何通過(guò) SSH 或客戶端命令行的方式管理 Jenkins Server,限于篇幅,前文主要的目的是介紹連接 Jenkins Server 的方式。本文主要介紹 Jenkins Server 提供的常用命令。
本文主要演示以 SSH 的方式執(zhí)行常見(jiàn)的 Jenkins CLI 命令,關(guān)于通過(guò) SSH 連接 Jenkins Server 的內(nèi)容,請(qǐng)參考前文。說(shuō)明:本文的演示環(huán)境為 Ubuntu 16.04。
從 who-am-i 開(kāi)始
$ ssh -l jack -p 8090 192.168.21.145 who-am-i
獲取 Jenkins Server 的版本
$ ssh -l jack -p 8090 192.168.21.145 version
添加 agent
create-node 命令需要指定一個(gè) xml 文件作為參數(shù),這個(gè) xml 文件中保存著新建 node 的配置信息。方便起見(jiàn)我們可以先使用 get-node 命令獲得一個(gè)現(xiàn)有 node 的配置文件,然后修改其中的配置,并最終用來(lái)創(chuàng)建新的 node。比如我們當(dāng)前有一個(gè)名為 testagent 的 node:
用下面的命令獲得其配置信息:
$ ssh -l jack -p 8090 192.168.21.145 get-node testagent > testagent.xml
接下來(lái)復(fù)制一份 testagent.xml 文件,創(chuàng)建 myagent.xml 文件,并修改 myagent.xml 文件中的相關(guān)配置。比如把 agent 名稱改為 myagent,host 修改為新 agent 的 IP 地址,credentialsId 改為具有適當(dāng)權(quán)限的新 ID。最后用新的 myagent.xml 文件創(chuàng)建 node:
$ ssh -l jack -p 8090 192.168.21.145 create-node < myagent.xml
這樣新的 node 就創(chuàng)建好了。當(dāng)然,我們也可以使用 delete-node 命令刪除一個(gè) node。
安裝 plugin
Jenkins 默認(rèn)提供的操作 plugin 的 CLI 只有 list-plugins 和 install-plugin。list-plugins 用來(lái)羅列所有已安裝的 plugins:
$ ssh -l jack -p 8090 192.168.21.145 list-plugins
如果為 list-plugins 指定參數(shù)(插件的名稱),則只顯示該插件的信息,該插件不存在就報(bào)錯(cuò):
install-plugin 命令用來(lái)安裝插件:
install-plugin SOURCE … [-deploy] [-name VAL] [-restart]
根據(jù)指定的 source 選項(xiàng),分別可以從 URL、本地文件和 update center 安裝插件。默認(rèn)從 update center 安裝插件,只用指定插件的短名稱(ID)就可以了:
$ ssh -l jack -p 8090 192.168.21.145 install-plugin greenballs -deploy
-deploy 表示立即部署插件而不必等到下次重啟 Jenkins。
如果指定的插件已經(jīng)存在并且需要升級(jí)到新的版本,同樣執(zhí)行 install-plugin 命令就可以了:
$ ssh -l jack -p 8090 192.168.21.145 install-plugin pipeline-graph-analysis -restart
-restart 選項(xiàng)表示安裝完成后重啟 Jenkins。
等 Jenkins 重啟完成后,發(fā)現(xiàn)插件已經(jīng)被更新到了最新的版本:
注意:update center 安裝插件時(shí),會(huì)自動(dòng)安裝當(dāng)前插件所依賴的插件。
通過(guò)本地的文件安裝插件
下載 greenballs 插件到當(dāng)前的目錄中,然后執(zhí)行命令:
$ ssh -l jack -p 8090 192.168.21.145 install-plugin = -deploy < greenballs.hpi -name greenballs
注意,此時(shí)需要通過(guò) -name 選項(xiàng)指定插件的名稱。
job 操作
Jenkins CLI 提供了豐富的命令來(lái)操作 job:
list-jobs:默認(rèn)列出所有的 job
get-job:獲得指定 job 的配置文件
copy-job:以現(xiàn)存的 job 為模板創(chuàng)建一個(gè)新的 job
create-job:創(chuàng)建一個(gè)新的 job,以標(biāo)準(zhǔn)輸入中的內(nèi)容作為配置信息
update-job:以配置文件中的內(nèi)容更新 job
delete-job:刪除 job
enable-job:enable job
disable-job:disable job
雖然 job 操作涉及的命令比較多,但是都相對(duì)的簡(jiǎn)單,這里不再一一演示。
觸發(fā) job
build 命令用來(lái)觸發(fā)一個(gè) job 任務(wù),我們可以通過(guò) help 命令來(lái)查看一下 build 命令的幫助文檔:
$ ssh -l jack -p 8090 192.168.21.145 help build
由上面的文檔可知,可以通過(guò) -f 和 -v 選項(xiàng)同步的執(zhí)行 job 并獲得控制臺(tái)輸出:
$ ssh -l jack -p 8090 192.168.21.145 build test -f -v
總結(jié)
Jenkins CLI 默認(rèn)支持的命令很多,這里只是簡(jiǎn)單介紹了其中的幾個(gè),主要目的是幫助理解 Jenkins CLI 命令的基本用法。更多命令的詳細(xì)用法請(qǐng)參考官方文檔。
參考:
Jenkins CLI