Jenkins CLI命令行

jenkins不光可以UI操作还提供了命令行接口

位置

  • 首页->系统管理->工具和动作->Jenkins 命令行接口
  • 在这个界面下载一个jenkins-cli.jar

实例

登录

方式一:用户名密码

  • 登录操作是所有操作的前提
java -jar jenkins-cli.jar -s http://106.14.1.150:8082/ -auth ruru023:123456
  • 显然这样是不太安全的

方式二:API Token

  • Jenkins->用户列表->用户名->设置->API Token
  • 输入名称,点击生成保存即可,但这个token一定要记录下来,你以后再也看不到了。

  • 命令行

    java -jar jenkins-cli.jar -s http://106.14.1.150:8082/ -auth ruru023:11129918daa39bdba49852a08d64ad1f44 list-jobs

方式三:文件方式(推荐)

  • 在有了token的基础上,你可以把以下信息保存下来

    ruru023:11129918daa39bdba49852a08d64ad1f44
  • 存放到你命令行所在机器的D:\下,如命名为password.txt

  • 后面执行命令就用如下方式

    java -jar jenkins-cli.jar -s http://106.14.1.150:8082/ -auth @d:\password.txt   list-jobs
  • 你也可以放在linux服务器上,存放到服务器Jenkins安装目录/war/WEB-INF下,如命名为password.txt

    java -jar jenkins-cli.jar -s http://106.14.1.150:8082/ -auth @password.txt   list-jobs

方式四:ssh方式(推荐)

未测试成功,可能跟阿里云有关系

  • 系统->系统管理->全局安全配置->ssh server

    • 指定端口:7654(不要冲突即可)
    • 保存
  • 参考方式二,切换到API TOKEN界面,找到SSH Public Keys
    • 输入你本机的pub key
  • 重启?
$ ssh -l ruru023 -p 8085  106.14.1.150 help
ssh: connect to host 106.14.1.150 port 8085: Connection refused

★写成bat来调度

  • 参考上面的内容
@echo off
cls
:start
set /p args="please input command args:"
java -jar jenkins-cli.jar -s http://106.14.1.150:8082/ -auth @d:\password.txt %args%
goto start
  • 执行效果如下

    please input command args:list-jobs
    Pipeline_forcli
    pipeline_forcli2 please input command args:version
    2.319.1

重启/关闭Jenkins

java -jar jenkins-cli.jar -s http://106.14.1.150:8082/ -auth ruru023:123456 restart
java -jar jenkins-cli.jar -s http://106.14.1.150:8082/ -auth ruru023:123456 shutdown
  • 还有安全重启

    safe-restart   #等到所有的操作都完成然后执行重启
    
    

列出jobs

>java -jar jenkins-cli.jar -s http://106.14.1.150:8082/ -auth ruru023:123456 list-jobs
#输出
Pipeline_forcli

构建job

java -jar jenkins-cli.jar -s http://106.14.1.150:8082/ -auth ruru023:123456 build Pipeline_forcli  #这是一行

删除job的build

  • 语法

    java -jar jenkins-cli.jar delete-builds JOB RANGE
    Delete build records of a specified job, possibly in a bulk.
    JOB : Name of the job to build
    RANGE : Range of the build records to delete. 'N-M', 'N,M', or 'N'
  • 示例

    >java -jar jenkins-cli.jar -s http://106.14.1.150:8082/ -auth ruru023:123456 delete-builds pipeline_forcli 1
    Deleted 1 builds >java -jar jenkins-cli.jar -s http://106.14.1.150:8082/ -auth ruru023:123456 delete-builds pipeline_forcli 2-3
    Deleted 2 builds >java -jar jenkins-cli.jar -s http://106.14.1.150:8082/ -auth ruru023:123456 delete-builds pipeline_forcli 4,5
    Deleted 2 builds

禁用/启用job

java -jar jenkins-cli.jar -s http://106.14.1.150:8082/ -auth ruru023:123456 disable-job pipeline_forcli

java -jar jenkins-cli.jar -s http://106.14.1.150:8082/ -auth ruru023:123456 enable-job pipeline_forcli

获取job的xml描述

java -jar jenkins-cli.jar -s http://106.14.1.150:8082/ -auth ruru023:123456 get-job pipeline_forcli
  • 导出到xml文件
java -jar jenkins-cli.jar -s http://106.14.1.150:8082/ -auth ruru023:123456 get-job pipeline_forcli  >xxx.xml

复制job

java -jar jenkins-cli.jar -s http://106.14.1.150:8082/ -auth ruru023:123456 copy-job pipeline_forcli pipeline_forcli2

删除job

java -jar jenkins-cli.jar -s http://106.14.1.150:8082/ -auth ruru023:123456 delete-job pipeline_forcli

列出插件

java -jar jenkins-cli.jar -s http://106.14.1.150:8082/ -auth ruru023:123456 list-plugins

安装插件

java -jar jenkins-cli.jar -s http://106.14.1.150:8082/ -auth ruru023:123456 install-plugin jira:3.7.1

#输出信息
Installing jira:3.7.1 from update center

  • 其他要么比较简单,要么很少用,要么太复杂,没意思了。

附录:CLI命令语法

Jenkins CLI
Usage: java -jar jenkins-cli.jar [-s URL] command [opts...] args...
Options:
-s URL : the server URL (defaults to the JENKINS_URL env var)
-http : use a plain CLI protocol over HTTP(S) (the default; mutually exclusive with -ssh)
-webSocket : like -http but using WebSocket (works better with most reverse proxies)
-ssh : use SSH protocol (requires -user; SSH port must be open on server, and user must have registered a public key)
-i KEY : SSH private key file used for authentication (for use with -ssh)
-noCertificateCheck : bypass HTTPS certificate check entirely. Use with caution
-noKeyAuth : don't try to load the SSH authentication private key. Conflicts with -i
-user : specify user (for use with -ssh)
-strictHostKey : request strict host key checking (for use with -ssh)
-logger FINE : enable detailed logging from the client
-auth [ USER:SECRET | @FILE ] : specify username and either password or API token (or load from them both from a file);
for use with -http.
Passing credentials by file is recommended.
See https://jenkins.io/redirect/cli-http-connection-mode for more info and options. The available commands depend on the server. Run the 'help' command to see the list.

附录:CLI命令操作

命令 含义
add-job-to-view Adds jobs to view.
build Builds a job, and optionally waits until its completion.
cancel-quiet-down Cancel the effect of the "quiet-down" command.
clear-queue Clears the build queue.
connect-node Reconnect to a node(s)
console Retrieves console output of a build.
copy-job Copies a job.
create-credentials-by-xml Create Credential by XML
create-credentials-domain-by-xml Create Credentials Domain by XML
create-job Creates a new job by reading stdin as a configuration XML file.
create-node Creates a new node by reading stdin as a XML configuration.
create-view Creates a new view by reading stdin as a XML configuration.
declarative-linter Validate a Jenkinsfile containing a Declarative Pipeline
delete-builds Deletes build record(s).
delete-credentials Delete a Credential
delete-credentials-domain Delete a Credentials Domain
delete-job Deletes job(s).
delete-node Deletes node(s)
delete-view Deletes view(s).
disable-job 禁用任务
disable-plugin Disable one or more installed plugins.
disconnect-node Disconnects from a node.
enable-job 启用任务
enable-plugin Enables one or more installed plugins transitively.
get-credentials-as-xml Get a Credentials as XML (secrets redacted)
get-credentials-domain-as-xml Get a Credentials Domain as XML
get-gradle List available gradle installations
get-job Dumps the job definition XML to stdout.
get-node Dumps the node definition XML to stdout.
get-view Dumps the view definition XML to stdout.
groovy Executes the specified Groovy script.
groovysh Runs an interactive groovy shell.
help Lists all the available commands or a detailed description of single command.
import-credentials-as-xml Import credentials as XML. The output of "list-credentials-as-xml" can be used as input here as is, the only needed change is to set the actual Secrets which are redacted in the output.
install-plugin Installs a plugin either from a file, an URL, or from update center.
keep-build 永久保留这次构建。
list-changes Dumps the changelog for the specified build(s).
list-credentials Lists the Credentials in a specific Store
list-credentials-as-xml Export credentials as XML. The output of this command can be used as input for "import-credentials-as-xml" as is, the only needed change is to set the actual Secrets which are redacted in the output.
list-credentials-context-resolvers List Credentials Context Resolvers
list-credentials-providers List Credentials Providers
list-jobs Lists all jobs in a specific view or item group.
list-plugins Outputs a list of installed plugins.
mail Reads stdin and sends that out as an e-mail.
offline-node Stop using a node for performing builds temporarily, until the next "online-node" command.
online-node Resume using a node for performing builds, to cancel out the earlier "offline-node" command.
quiet-down Quiet down Jenkins, in preparation for a restart. Don’t start any builds.
reload-configuration Discard all the loaded data in memory and reload everything from file system. Useful when you modified config files directly on disk.
reload-job Reload job(s)
remove-job-from-view Removes jobs from view.
replay-pipeline 从标准输入中获取的脚本并回放流水线执行
restart 重新启动Jenkins
restart-from-stage Restart a completed Declarative Pipeline build from a given stage.
safe-restart 安全地重新启动Jenkins
safe-shutdown Puts Jenkins into the quiet mode, wait for existing builds to be completed, and then shut down Jenkins.
session-id Outputs the session ID, which changes every time Jenkins restarts.
set-build-description Sets the description of a build.
set-build-display-name Sets the displayName of a build.
shutdown 立刻关闭Jenkins
stop-builds Stop all running builds for job(s)
update-credentials-by-xml Update Credentials by XML
update-credentials-domain-by-xml Update Credentials Domain by XML
update-job Updates the job definition XML from stdin. The opposite of the get-job command.
update-node Updates the node definition XML from stdin. The opposite of the get-node command.
update-view Updates the view definition XML from stdin. The opposite of the get-view command.
version Outputs the current version.
wait-node-offline Wait for a node to become offline.
wait-node-online Wait for a node to become online.
who-am-i Reports your credential and permissions.

Jenkins CLI命令行的更多相关文章

  1. Jenkins CLI 命令详解

    笔者在前文<通过 CLI 管理 Jenkins Server>中介绍了如何通过 SSH 或客户端命令行的方式管理 Jenkins Server,限于篇幅,前文主要的目的是介绍连接 Jenk ...

  2. ThinkPHP3.1.2 使用cli命令行模式运行

    ThinkPHP3.1.2 使用cli命令行模式运行 标签(空格分隔): php 前言 thinkphp3.1.2 需要使用cli方法运行脚本 折腾了一天才搞定 3.1.2的版本真的很古老 解决 增加 ...

  3. PHP的CLI命令行运行模式浅析

    在做开发的时候,我们不仅仅只是做各种网站或者接口,也经常需要写一些命令行脚本用来处理一些后端的事务.比如对数据进行处理统计等.当然也是为了效率着想,当一个事务有可能会有较长的耗时时,往往会交由服务器的 ...

  4. golang常用库:cli命令行/应用程序生成工具-cobra使用

    golang常用库:cli命令行/应用程序生成工具-cobra使用 一.Cobra 介绍 我前面有一篇文章介绍了配置文件解析库 Viper 的使用,这篇介绍 Cobra 的使用,你猜的没错,这 2 个 ...

  5. Jenkins 脚本命令行应用总结

    Jenkins脚本命令行应用总结 测试环境 Jenkins 2.304 脚本命令行入口 Jenkins主页→系统管理→脚本命令行 遍历项目 例子:获取所有自由风格项目及相关项目信息 def proje ...

  6. Apache Commons CLI命令行启动

    今天又看了下Hangout的源码,一般来说一个开源项目有好几种启动方式--比如可以从命令行启动,也可以从web端启动.今天就看看如何设计命令行启动... Apache Commons CLI Apac ...

  7. GO语言之urfave/cli命令行解析

    练习URL: https://blog.csdn.net/sd653159/article/details/83381786 相信只要部署过线上服务,都知道启动参数一定是必不可少的,当你在不同的网络. ...

  8. Angular CLI 命令行工具

    工欲善其事必先利其器.好的工具让开发更加简单便捷. 1.全局安装angular cli npm install -g @angular/cli 2.安装完成后就可以使用angular-cli命令行工具 ...

  9. CI 框架下执行CLI(命令行)

    1.可以按照Ci官方文件的指导来进行操作 让我们先创建一个简单的控制器,打开你的文本编辑器,新建一个文件并命名为 Tools.php,然后输入如下的代码: <?php class Tools e ...

  10. Go语言中的IO操作、Flag包以及urfave/cli命令行框架

    一.格式化输入和输出 1.从终端获取用户的输入 fmt.Scanf  空格作为分隔符,占位符和格式化输出的一致 fmt.Scan  从终端获取用户的输入,存储在Scanln中的参数里,空格和换行符作为 ...

随机推荐

  1. YC-Framework版本更新:V1.0.10

    分布式微服务框架:YC-Framework版本更新V1.0.10!!! 本文主要内容: 1.V1.0.10版本更新主要内容2.YC-Framework相关系列文章分享 一.V1.0.10版本更新主要内 ...

  2. 2022春每日一题:Day 31

    题目:机器分配 设f[i][j]表示前i个机器,共分配了j个的最大值,枚举第i个机器分配个数,转移f[i][j]=max{f[i-1][k]+a[i][j-k]},此题只是加了个要输出 代码: #in ...

  3. orcle恢复报错:ORA-00392: 日志 2 (用于线程 1) 正被清除, 不允许操作

    遇到问题 RMAN> alter database open resetlogs; RMAN-00571: =========================================== ...

  4. FluentFTP能连接却报未将对象引用设置到对象的实例。

    本来项目中用的好好的FTP下载传输,不知道从什么时候开始读取不到了,也上传不了.实际读取的是本地缓存的.因为同事上传不了文件和图片才发现.上源码! #region 下载文件 static byte[] ...

  5. 解决windows installation failed! Error: 无法访问 Windows Installer 服务

    这种错误,是因为没有开启winodws Installer这个服务导致的,在开始菜单搜索"服务",找到windows Installer 这个服务,右键--属性--把启动类型 选成 ...

  6. python3的可迭代对象与迭代器对象

    可迭代对象与迭代器对象 通过一段简单的代码来理解这俩个概念 a = [1,2,3,4] for i in a: print(i) 这段代码很简单, 对 a 这个列表进行遍历, 然后打印输出每个元素, ...

  7. ssm 乱码

    1.post乱码:在web.xml中增加解决解决post乱码的过滤器 <!--解决POST乱码问题--> <filter> <filter-name>Charact ...

  8. Pandas_1_预备知识

    Chapter1_Python基础 1.1 Python基础 推导式: 两个对象之间的映射关系,类似于实数之间关系变换的函数,只不过对象变成了矩阵. # Ex1-1 vacabulary = ['co ...

  9. 【每日一题】【哈希表,返回结果的下标】2022年1月18日-NC61 两数之和

    描述给出一个整型数组 numbers 和一个目标值 target,请在数组中找出两个加起来等于目标值的数的下标,返回的下标按升序排列.(注:返回的数组下标从1开始算起) 算法: import java ...

  10. PW6276是一颗高效同步升压转换芯片,内部集成低阻抗功率 MOS

    概述PW6276是一颗高效同步升压转换芯片,内部集成低阻抗功率 MOS. 具有短路保护功能内部集成软启动电路,无需外部补偿电容,外部反馈网络.PW6276采用 SOP8-EP 封装配合较少的外围原件使 ...