从Azure Functions / Azure VM远程触发Jenkins作业

时间:2019-03-19 08:01:02

标签: azure jenkins azure-functions

詹金斯(Jenkins)刚刚加入新手,根本无法使它正常工作。我一直在网上寻找答案,但没有找到答案,或者可能不了解我应该怎么做。

我在Jenkins中有当前计划的工作(Python脚本)。但是其中之一需要转换为通过URL远程触发。我已经实现了这一点,当我使用URL从办公室的网络(Python,CMD,浏览器,邮递员等)中触发Job时,一切工作正常。

但是,当使用相同的URL从Azure Functions或Azure VM触发作业时,不会触发该作业(不同的IP-我认为这一定是问题所在)。我一直在尝试通过更改防火墙设置在当前运行我们的Jenkins服务器的计算机上打开端口8080,但是无论HTTP POST是否无法通过。目标是从Azure Functions触发作业。

关于Jenkins,是否有明显的我想念的地方?或者仅仅是因为我们的防火墙正在阻止连接,因为我们需要使用VPN从外部连接到我们的本地网络。我们仅在一台计算机(在本地网络中运行的计算机)上设置了詹金斯,而没有引入任何从属节点。

1 个答案:

答案 0 :(得分:0)

这确实听起来像是防火墙问题。有很多方法可以在Azure中实现此类本地实现,而无需向外部开放网络。

从最简单的方法开始


A。 逻辑应用

Logic Apps是因为它支持On-Premises Data Gateway,使它可以访问本地系统中的数据。

它有几个组成部分

  1. 自定义连接器 您将必须create a custom connector才能通过本地数据网关进行连接,并定义了一个可以调用您的Jenkins机器的动作

  2. 设置本地数据网关
    您必须在本地网络上setup the on-premises data gateway才能访问您的Jenkins主服务器(也可以与Jenkins主服务器位于同一主机上)

  3. 创建逻辑应用
    这是使用逻辑应用程序而不是功能应用程序的简单部分。您可以创建一个简单的HTTP triggered Logic App,使用创建的自定义连接器来触发Jenkins作业


B。 Azure自动化

Azure Automation具有类似的功能,您可以在内部部署网络中部署Hybrid Worker并将作业计划到该工作器中。

您可以根据需要部署以下任何一个工作人员

  1. Windows Worker
  2. Linux Worker

您要编写的Runbook可以位于PowerShellPython中,其目的是仅调用Jenkins API即可开始工作。

所有这些都准备就绪,您只需要start the runbook on the hybrid worker

您也可以start a runbook from a webhook


C。 将您的本地网络连接到Azure

这更多是一种网络解决方案,您可以将内部部署网络连接到Azure VNET,从而允许该VNET中的任何资源访问您的内部部署系统。

documentation

中所述,有两种方法可以实现此目的
  1. VPN Gateway
  2. Express Route

我不会在这里深入介绍这些设置。您可以参考文档以获取有关设置的详细说明。

一旦设置,您可以