Azure   发布时间:2019-11-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Bitbucket 触发内网 Jenkins Build大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

内部的局域网中,这样如果代码部署在 Bitbucket 等环境中就只能通过轮询的方式来触发 Build。那么有没有办法通过 Bitbucket 的 Webhooks 功能在开发人员提交代码时触发 Build 呢?答案是肯定的,并且有很多种实现方式。jenkins 中的 Build。其结构如下:

title="Bitbucket 触发内网 jenkins Build" alt="Bitbucket 触发内网 jenkins Build" src="https://cn.js-code.com/res/2019/02-09/09/5b2411d67b8e523725302e7fb7860f57.png" >

是需要在外网有一台可以访问的主机,通过 SSH 的端口转发技术(准确的说是"远程端口转发")把外网主机监听到的请求转发给内网中的 jenkins 服务器。

Manage Users 界面中点击 "Create User":

title="Bitbucket 触发内网 jenkins Build" alt="Bitbucket 触发内网 jenkins Build" src="https://cn.js-code.com/res/2019/02-09/09/28c6cc51d0a2f880820c56c69fc0f927.png" >

0589@,笔者创建的用户名称为 autobuilder。

Configure Global Security 配置界面,在 Authorization 的配置项中选择 "Matrix-based security",然后把 autobuilder 用户添进来:

title="Bitbucket 触发内网 jenkins Build" alt="Bitbucket 触发内网 jenkins Build" src="https://cn.js-code.com/res/2019/02-09/09/0ac7cbcdf2ccb92a672f15cb339e3335.png" >

trigger 配置

ject 中进行配置才能开启远程触发 Build 的功能。进入 Project 的配置界面,在 "Build triggers" 下面选中 "trigger builds remotely":

title="Bitbucket 触发内网 jenkins Build" alt="Bitbucket 触发内网 jenkins Build" src="https://cn.js-code.com/res/2019/02-09/09/57a3a669db59e62a9d4cdc40e1cad578.png" >

如上图所示,你必须输入一个 Authentication Token。这主要是为了唯一的标识当前的 Project 并保证一定的安全性。你可以从 https://randomkeygen.com/ 轻松的生成一个合格的 Authentication Token。

jenkins 服务器地址替换模板中的 jeNKINS_URL,用实际的 Authentication Token 替换模板中的 TOKEN_NAME。得到的 URL 为:

http:jenkins/job/elephant/build?token=QTfICY6LwGvgG5jhy8EzMD6C9dEdk8fS

jenkins 服务器中,点击右上角的用户名称进入用户信息界面,然后点击 "Configure" 进入配置界面。点击 API Token 小节中的 "Show API Token" 按钮:

title="Bitbucket 触发内网 jenkins Build" alt="Bitbucket 触发内网 jenkins Build" src="https://cn.js-code.com/res/2019/02-09/09/b7243a0b78d9c42aa7260768e6d690aa.png" >

http:jenkins/job/elephant/build?token=QTfICY6LwGvgG5jhy8EzMD6C9dEdk8fS

jenkins 服务器运行的主机上触发 Build 试试:

$ curl http:

ENGIne.eastasia.cloudapp.azure.com,端口号为 10055。所以用 xxxENGIne.eastasia.cloudapp.azure.com:10055 替换 localhost:8080,最终的 URL 为:

http:ENGIne.eastasia.cloudapp.azure.com:10055/job/elephant/build?token=QTfICY6LwGvgG5jhy8EzMD6C9dEdk8fS

http://www.cnblogs.com/sparkdev/p/7497388.html" target="_blank">SSH 端口转发》。ENGIne.eastasia.cloudapp.azure.com,允许外部访问的端口为 22 和 10055:

title="Bitbucket 触发内网 jenkins Build" alt="Bitbucket 触发内网 jenkins Build" src="https://cn.js-code.com/res/2019/02-09/09/0dc334d522270e3d8398d7683a42b922.png" >

jenkins Build 的请求。ENGIne.eastasia.cloudapp.azure.com, 在 SSH 服务器的配置文件 /etc/ssh/sshd_config 中添加一行:

GatewayPorts yes

jenkins 服务器到外网 xxxENGIne.eastasia.cloudapp.azure.com 主机的隧道。在内网中运行 jenkins 服务器的主机上执行下面的命令:

$ -fN -R :localhost: nick@xxxENGIne.eastasia.cloudapp.azure.com

ENGIne.eastasia.cloudapp.azure.com 需要监听的端口号。localhost:8080 是 jenkins 服务器监听的本机端口。nick@xxxENGIne.eastasia.cloudapp.azure.com 表示通过用户 nick 建立到主机 xxxENGIne.eastasia.cloudapp.azure.com 的 SSH 连接。选项 fN 则让该远程转发以后台方式运行。ENGIne.eastasia.cloudapp.azure.com 上,执行 ss -tunl 命令查看端口的监听情况:

title="Bitbucket 触发内网 jenkins Build" alt="Bitbucket 触发内网 jenkins Build" src="https://cn.js-code.com/res/2019/02-09/09/dba585a44959449c03bc234b4e04eeed.png" >

Webhooks" 进入 Webhooks 的配置界面。添加一个新的 webhook 配置,并且把我们在前面创建的最终版的 URL 设置其 URL:

title="Bitbucket 触发内网 jenkins Build" alt="Bitbucket 触发内网 jenkins Build" src="https://cn.js-code.com/res/2019/02-09/09/6fdb051247df7e7c80203eada671b3c4.png" >

http 请求。结果内网中的 jenkins 服务器收到请求触发一个新的 Build。

Bitbucket 向 xxxENGIne.eastasia.cloudapp.azure.com 的 端口并且把接收到的请求通过 SSH 隧道发送到内网中 jenkins 服务器上 localhost 的 jenkins 服务器监听 localhsot 的 端口,并且处理收到的请求。

jenkins 的访问。便捷的解决。

大佬总结

以上是大佬教程为你收集整理的Bitbucket 触发内网 Jenkins Build全部内容,希望文章能够帮你解决Bitbucket 触发内网 Jenkins Build所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: