笔者在前文《通过 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. java基础面试(上)

    面向对象的特征 答:抽象.继承.封装.多态 short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗? 答:对于short s1 = 1; s1 ...

  2. 201621123002《JAVA程序设计》第二周学习总结

    1.本周学习总结 1.重点String类 2.Java的数据类型 3.Java中的引用类,包装类 for(类型 元素变量名(任取):遍历对象(数组名)) 2.书面作业 1.String-使用Eclip ...

  3. boost 编写finger服务

    本篇是模仿PYTHON TWISTED写一个FINGER示例. 从最简单的链接到通过接收字符串返回不同的内容 1 最简单的链接 #include <ctime> #include < ...

  4. 游戏脚本编程 文本token解析

    一个数字的组成由以下几个字符 正负号 + -   小数点 .   数字 0-9 比如 3 -3 3.13 -34.2234 但是符号和小数点不会出现多次 那么识别流程用图来表示 则是 整数 浮点数 一 ...

  5. .net 资源释放(托管资源和非托管资源)

    1.托管资源 像int.float.DateTime等都是托管资源:net中80%的资源都是托管资源: 托管资源的回收通过GC(垃圾回收器)自动释放分配给该对象的内存,但无法预测进行垃圾回收的时间,我 ...

  6. 树上差分——点差分裸题 P3128 [USACO15DEC]最大流Max Flow

    讲解: https://rpdreamer.blog.luogu.org/ci-fen-and-shu-shang-ci-fen #include <bits/stdc++.h> #def ...

  7. CentOS7 启动中文输入法

    CentOS 系统中是带有中文输入法的(智能拼音),启动方式如下: Applications --> System Tools -->  Setting --> Region &am ...

  8. javascript 内存模型

    我对于 JavaScript 的内存模型一直都比较困惑,很想了解在操作变量的时候,JS 是如何工作的.如果你和我有同样的困惑,希望这篇文章能给你一些启发. 译文,喜欢原文的可以直接拉到底部 当我们声明 ...

  9. GraphQL:你的容颜,十万光年

    What? GraphQL 是一种类似于 SQL 的结构化查询语言,由 facebook 于2012年创造,于2015年开源.SQL 在服务端定义,GraphQL 在客户端定义,也就是说 GraphQ ...

  10. python中的基本数值计算

    最近用到了python的数字信号处理,发现很多以前学的都忘掉了,这里做个笔记 # -*- coding: utf-8 -*- #计算乘方 print pow(3,4) #计算平方 import num ...