Jenkins CLI命令行

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-viewAdds jobs to view.
buildBuilds a job, and optionally waits until its completion.
cancel-quiet-downCancel the effect of the “quiet-down” command.
clear-queueClears the build queue.
connect-nodeReconnect to a node(s)
consoleRetrieves console output of a build.
copy-jobCopies a job.
create-credentials-by-xmlCreate Credential by XML
create-credentials-domain-by-xmlCreate Credentials Domain by XML
create-jobCreates a new job by reading stdin as a configuration XML file.
create-nodeCreates a new node by reading stdin as a XML configuration.
create-viewCreates a new view by reading stdin as a XML configuration.
declarative-linterValidate a Jenkinsfile containing a Declarative Pipeline
delete-buildsDeletes build record(s).
delete-credentialsDelete a Credential
delete-credentials-domainDelete a Credentials Domain
delete-jobDeletes job(s).
delete-nodeDeletes node(s)
delete-viewDeletes view(s).
disable-job禁用任务
disable-pluginDisable one or more installed plugins.
disconnect-nodeDisconnects from a node.
enable-job启用任务
enable-pluginEnables one or more installed plugins transitively.
get-credentials-as-xmlGet a Credentials as XML (secrets redacted)
get-credentials-domain-as-xmlGet a Credentials Domain as XML
get-gradleList available gradle installations
get-jobDumps the job definition XML to stdout.
get-nodeDumps the node definition XML to stdout.
get-viewDumps the view definition XML to stdout.
groovyExecutes the specified Groovy script.
groovyshRuns an interactive groovy shell.
helpLists all the available commands or a detailed description of single command.
import-credentials-as-xmlImport 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-pluginInstalls a plugin either from a file, an URL, or from update center.
keep-build永久保留这次构建。
list-changesDumps the changelog for the specified build(s).
list-credentialsLists the Credentials in a specific Store
list-credentials-as-xmlExport 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-resolversList Credentials Context Resolvers
list-credentials-providersList Credentials Providers
list-jobsLists all jobs in a specific view or item group.
list-pluginsOutputs a list of installed plugins.
mailReads stdin and sends that out as an e-mail.
offline-nodeStop using a node for performing builds temporarily, until the next “online-node” command.
online-nodeResume using a node for performing builds, to cancel out the earlier “offline-node” command.
quiet-downQuiet down Jenkins, in preparation for a restart. Don’t start any builds.
reload-configurationDiscard all the loaded data in memory and reload everything from file system. Useful when you modified config files directly on disk.
reload-jobReload job(s)
remove-job-from-viewRemoves jobs from view.
replay-pipeline从标准输入中获取的脚本并回放流水线执行
restart重新启动Jenkins
restart-from-stageRestart a completed Declarative Pipeline build from a given stage.
safe-restart安全地重新启动Jenkins
safe-shutdownPuts Jenkins into the quiet mode, wait for existing builds to be completed, and then shut down Jenkins.
session-idOutputs the session ID, which changes every time Jenkins restarts.
set-build-descriptionSets the description of a build.
set-build-display-nameSets the displayName of a build.
shutdown立刻关闭Jenkins
stop-buildsStop all running builds for job(s)
update-credentials-by-xmlUpdate Credentials by XML
update-credentials-domain-by-xmlUpdate Credentials Domain by XML
update-jobUpdates the job definition XML from stdin. The opposite of the get-job command.
update-nodeUpdates the node definition XML from stdin. The opposite of the get-node command.
update-viewUpdates the view definition XML from stdin. The opposite of the get-view command.
versionOutputs the current version.
wait-node-offlineWait for a node to become offline.
wait-node-onlineWait for a node to become online.
who-am-iReports your credential and permissions.
  • 26
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wuxianfeng023

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值