通过 CLI 管理 Jenkins Server_Ubuntu_青云站长教程网
欢迎来到站长教程网!
  • 秒到短信接口 免费试用
  • 微信支付宝接口 秒结算
  • 中文网站排名|申请加入
  • 搜索引擎全站查询
  • 查询移动网站权重数据
  • 海外主机 台湾公司直销
  • Ubuntu

    当前位置:主页 > 服务器教程 > Ubuntu >

    通过 CLI 管理 Jenkins Server

    时间:2019-07-11|栏目:Ubuntu|点击:
  • Jenkins 内置的命令行接口允许管理员通过命令行工具访问并管理 Jenkins。这让我们可以通过脚本自动化的创建配置或执行任务,也就是把 Jenkins 中的配置代码化了。Jenkins 同时支持通过 SSH 和客户端命令行工具 jenkins-cli.jar 进行访问。本文主要介绍如何通过这两种方式用命令行操作 Jenkins。说明:本文的演示环境为 Ubuntu 16.04。

    通过 SSH 执行命令

    在 Jenkins Server 的默认安装中,内置的 SSH service 是没有启用的:

    我们可以通过下面的配置让 Jenkins 启用 SSH service,Jenkins ->Configure Global Security:

    笔者选择让 Jenkins 的 SSH Server 监听 8090 端口,如果你选择的是 Random,那么监听的端口是随机产生的,无论如何,我们都可以用下面的命令来获得  Jenkins SSH Server 监听的端口号:

    $ curl -Lv http://192.168.21.145:8080/login 2>&1 | grep 'X-SSH-Endpoint'

    说明:笔者的 Jenkins Server 部署在主机 192.168.21.145 上,监听的端口号为 8080。用户至少要有 Overall/Read 权限才能访问命令行接口,但是根据执行的命令的不同还需要更高的权限。本文主要演示如何配置远程执行命令,所以演示用的用户具有全部权限。

    为用户添加身份验证的秘钥
    使用 SSH 的最佳方式是通过秘钥进行身份验证,这里我们把远程机器上用户的公钥添加到 Jenkins 用户 jack 的 Public Keys 列表中(Jenkins -> jack):

    现在就可以远程调用 Jenkins Server 提供的命令了,先来问一下 "我是谁?":
    $ ssh -l jack -p 8090 192.168.21.145 who-am-i

    help 命令
    我们可以通过 help 命令来查看所有的可用命令:

    $ ssh -l jack -p 8090 192.168.21.145 help

    通过 CLI 管理 Jenkins Server

    help 命令的输出很长,上图仅截取了一部分,我们还可以通过 help 命令查看其它命令的详细用法,笔者会在后面的文章中详细介绍常用命令,这里先一笔带过。

    build 命令
    为了演示方便,我们先来简单了解一下 build 命令,它用来触发 job 和 pipeline 的执行。下面的是用它来触发一个名称为 test 的 job,这个 job 非常简单,仅仅输出字符串 "hello":

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

    通过 CLI 管理 Jenkins Server

    还不赖,任务被成功的执行了!

    到此为止,我们已经可以组织自动化脚本远程操作 Jenkins Server 了。下面我们一起看看 Jenkins 提供的另外一种方式:客户端命令行工具。

    客户端命令行工具

    虽然基于 SSH 的 CLI 非常便捷,并且能够满足大多数需求,但是在某些情况下,与 Jenkins 一起发布的客户端 CLI 工具可能更合适。例如,客户端 CLI 工具的默认传输方式是 HTTP,这意味着不需要在防火墙中打开额外的端口来就可以使用。
    通常不需要进行特殊的系统配置来启用基于 HTTP 的命令行连接。如果是在 HTTP(S) 反向代理后面运行 Jenkins,一定要确保请求和响应不会被缓存。

    下载客户端命令行工具
    Jenkins 自带的命令行工具是一个 java 程序,可以通过下面的 url 下载到远程主机上:

    JENKINS_URL/jnlpJars/jenkins-cli.jar

    比如:

    $ wget http://192.168.21.145:8080/jnlpJars/jenkins-cli.jar

    注意,这是个 java 程序,要运行它需要确保你的主机上安装了 jre。

    通过用户名和密码认证用户身份
    下面我们用客户端工具来触发 test job,先通过用户名和密码的方式进行认证:

    $ java -jar jenkins-cli.jar -s http://192.168.21.145:8080 -auth jack:123456 build test -f -v

    通过 CLI 管理 Jenkins Server

    虽然命令成功执行了,但使用密码毕竟太不安全。

    使用 API Token
    安全起见还是应该使用 API Token,先为用户 jack 生成 API Token:

    把上面命令中的密码换成 API Token 就可以了:

    $ java -jar jenkins-cli.jar -s http://192.168.21.145:8080 -auth jack:11d5ca0f9ee2dac8c47492b3e6b71c82cd build test -f -v

    结果和上面是一样的。还可以把用户名和 API Token 保存到文件中,这样能进一步提高安全性:

    $ echo jack:11d5ca0f9ee2dac8c47492b3e6b71c82cd > .jenkins-token

    然后可以使用 @ 符以下面的方式引用:

    $ java -jar jenkins-cli.jar -s http://192.168.21.145:8080 -auth @/home/nick/.jenkins-token build test -f -v

    执行的结果也是一样的。注意要在 @ 后面不要用 ~ 号代替用户的家目录。

    除此之外还可以通过环境变量来指定用户名和 API Token:

    上一篇:解决asp.net负载均衡时Session共享的问题

    栏    目:Ubuntu

    下一篇:通过 Ansible 创建 Jenkins Server

    本文标题:通过 CLI 管理 Jenkins Server

    本文地址:http://www.jh-floor.com/fuwuqijiaocheng/Ubuntu/3114.html

    广告投放 | 联系我们 | 版权申明

    重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

    如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

    联系QQ:888888 | 邮箱:888888#qq.com(#换成@)

    Copyright © 2002-2017 青云站长教程网 版权所有 琼ICP备xxxxxxxx号