笔者在前文《通过 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. 在URL地址中传值

    URL: re_path('edit_teacher-(\d+).html', views.handle_edit_teacher), HTML: <a href='/edit_teacher- ...

  2. Calendar类常用需求方法

    经常处理一些日期相关的信息,Calendar类是处理日期的常用类,写下几个方法,不用重复造轮子了. 1.求上一天,下一天的日期 Date now = new Date();Calendar c = C ...

  3. html-day06

    html-day06 1.定位 定位: 1.普通流定位 普通流,又称为文档流 块级元素:从上到下一个一个的排列 行内元素:一行内从左到右的排列 2.浮动定位 1.什么是浮动定位 将元素排除在普通流之外 ...

  4. ABP框架系列之二十:(Dependency-Injection-依赖注入)

    What is Dependency Injection If you already know Dependency Injection concept, Constructor and Prope ...

  5. Educational Codeforces Round 62 (Rated for Div. 2) C 贪心 + 优先队列 + 反向处理

    https://codeforces.com/contest/1140/problem/C 题意 每首歌有\(t_i\)和\(b_i\)两个值,最多挑选m首歌,使得sum(\(t_i\))*min(\ ...

  6. 【转】Linux中的EAGAIN含义

    在Linux环境下开发经常会碰到很多错误(设置errno),其中EAGAIN是其中比较常见的一个错误(比如用在非阻塞操作中). 从字面上来看,是提示再试一次.这个错误经常出现在当应用程序进行一些非阻塞 ...

  7. Paper | 帧间相关性 + 压缩视频质量增强(MFQE)

    目录 1. ABSTRACT 2. INTRODUCTION 3. RELATED WORKS 3.1. Quality Enhancement 3.2. Multi-frame Super-reso ...

  8. leetcode437--Path Sum III

    https://leetcode.com/problems/path-sum-iii/ 理解比较困难,可以先看https://www.cnblogs.com/albert67/p/10416402.h ...

  9. ModelAndView对象

    ModelAndView属性中两个最重要的属性是model和view. view即视图,保存的是视图信息. model即模型,以<K,V>形式保存模型数据,上图可以看到是MdelMap类型 ...

  10. 【pycharm 密钥】pycharm 2017 密钥

    server选项里边输入:  http://idea.liyang.io   亲测可用!!!