笔者在前文《通过 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  192.168.21.145 who-am-i

获取 Jenkins Server 的版本

$ ssh -l jack -p  192.168.21.145 version

添加 agent

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

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

$ ssh -l jack -p  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:

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

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

安装 plugin

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

$ ssh -l jack -p  192.168.21.145 list-plugins

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

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

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

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

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

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

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

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

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

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

$ ssh -l jack -p  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  192.168.21.145 help build

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

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

总结

Jenkins CLI 默认支持的命令很多,这里只是简单介绍了其中的几个,主要目的是帮助理解 Jenkins CLI 命令的基本用法。更多命令的详细用法请参考官方文档。

参考:
Jenkins CLI

Jenkins CLI 命令详解的更多相关文章

  1. Mac svn使用学习-4-客户端cli命令详解

    客户端cli的使用 WC:Working Copy 你的工作区 将文件或目录版本化,这样下一次提交到存储库的时候,他们就都会被提交上去.能实现版本化的命令有: add 1.import 是否访问存储库 ...

  2. 【Devops】【docker】【CI/CD】关于jenkins构建成功后一步,执行的shell命令详解+jenkins容器运行宿主机shell命令的实现方法

    1.展示这段shell命令 +详解 #================================================================================= ...

  3. 利用 Java 操作 Jenkins API 实现对 Jenkins 的控制详解

    本文转载自利用 Java 操作 Jenkins API 实现对 Jenkins 的控制详解 导语 由于最近工作需要利用 Jenkins 远程 API 操作 Jenkins 来完成一些列操作,就抽空研究 ...

  4. Git初探--笔记整理和Git命令详解

    几个重要的概念 首先先明确几个概念: WorkPlace : 工作区 Index: 暂存区 Repository: 本地仓库/版本库 Remote: 远程仓库 当在Remote(如Github)上面c ...

  5. linux yum命令详解

    yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器.基於RPM包管理,能够从指定的服务器自动下载RP ...

  6. Linux下ps命令详解 Linux下ps命令的详细使用方法

    http://www.jb51.net/LINUXjishu/56578.html Linux下的ps命令比较常用 Linux下ps命令详解Linux上进程有5种状态:1. 运行(正在运行或在运行队列 ...

  7. Docker命令详解

    Docker命令详解   最近学习Docker,将docker所有命令实验了一番,特整理如下: # docker --help Usage: docker [OPTIONS] COMMAND [arg ...

  8. linux awk命令详解

    linux awk命令详解 简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分 ...

  9. android adb 命令详解

    ADB (Android Debug Bridge)  是android SDK中的工具,需要先配置环境变量才能使用.起调试桥的作用,可以管理安卓设备.(也叫debug工具) ---------查看设 ...

随机推荐

  1. CentOS 系统 git clone出错

    CentOS 操作系统 安装npm git clone 项目时出现类似如下错误: fatal: unable to access 'https://github.com/creationix/nvmg ...

  2. 微信小程序开发 - 用户授权登陆

    准备:微信开发者工具下载地址:https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html 微信小程序开发文档:htt ...

  3. Git 在团队中的使用--如何正确使用Git Flow

    Git的优点 Git的优点很多,但是这里只列出我认为非常突出的几点. 由于是分布式,所有本地库包含了远程库的所有内容. 优秀的分支模型,打分支以及合并分支,机器方便. 快速,在这个时间就是金钱的时代, ...

  4. Redhat/Centos6.x安装Chrome

    由于Chrome对rhel6.x不在支持发布版本,只能安装chromium版本! 01.下载地址 http://people.centos.org/hughesjr/chromium/6/x86_64 ...

  5. java多线程系列13 设计模式 Future 模式

    Future 模式 类似于ajax请求  页面异步的进行后台请求 用户无需等待请求的结果 就可以继续浏览或者操作 核心就是:去除了主函数的等待时间,并使得原本需要等待的时间段可以用于处理其他业务逻辑 ...

  6. PyCharm选择性忽略PEP8代码风格警告信息

    用了几天的PyCharm,发现确实在编写Python代码上非常好用,但有一点体验不太好,就是代码编写时要按照PEP8代码风格编写,不然会有波浪线的警告信息.解决方法如下: 方法一: 将鼠标移到提示的地 ...

  7. 【git】仓库目录下文件不加入版本控制

    如果文件未做过提交操作,在文件所在目录或上级目录新建.gitignore文本文件,将文件的相对路径写入,再将该文本文件提交,则目标文件将被git忽略. 补一个gitignore文件书写规范 2.至于已 ...

  8. 数据库-SQL语句:删除和修改语句-列类型-列约束

    使用MySQL客户端连接服务器的两种方式: (1)交互模式: ——查 mysql.exe  -h127.0.0.1  -uroot  -p mysql   -uroot (2)脚本模式:——增删改 m ...

  9. 2019.02.14 codechef Chef at the Food Fair(线段树+泰勒展开)

    传送门 题意:现在有nnn个位置,每个位置上有一个值aia_iai​. 要求支持如下两种操作: 区间乘vvv 求区间的(1−ai)(1-a_i)(1−ai​)之积 思路: 考虑转换式子: Ans=∏i ...

  10. 10. Halloween 万圣节

    10. Halloween 万圣节 (1) On October the 31st,across Britain and the USA,thousands of children are dress ...