Continuous integration 如何在一个仪表板上整合位于不同位置的多个Jenkins实例的构建状态?

Continuous integration 如何在一个仪表板上整合位于不同位置的多个Jenkins实例的构建状态?,continuous-integration,jenkins,Continuous Integration,Jenkins,我们有几个团队分布在世界各地(美国、英国、印度),他们在地理位置上非常专注于项目。目前,每个团队都有自己的Jenkins服务器用于构建他们的项目。我们可以这样说: 詹金萨(美国)[项目A] JenkinsB(印度)[项目B] 詹金斯克(英国)[项目C] 这些站点由(必要的)高延迟VPN连接。管理层希望对所有团队中所有构建的状态有一个聚合视图。但是,由于集成系统在地理上是分布式的,因此我们无法在一个位置整合为单个构建系统 是否有一个预构建的解决方案,用于将来自不同Jenkins实例的所有构建状

我们有几个团队分布在世界各地(美国、英国、印度),他们在地理位置上非常专注于项目。目前,每个团队都有自己的Jenkins服务器用于构建他们的项目。我们可以这样说:

  • 詹金萨(美国)[项目A]
  • JenkinsB(印度)[项目B]
  • 詹金斯克(英国)[项目C]
这些站点由(必要的)高延迟VPN连接。管理层希望对所有团队中所有构建的状态有一个聚合视图。但是,由于集成系统在地理上是分布式的,因此我们无法在一个位置整合为单个构建系统

  • 是否有一个预构建的解决方案,用于将来自不同Jenkins实例的所有构建状态聚合到一个网页/仪表板上?可以将各种RSS提要整合到一个显示中的东西

  • 考虑到我们的开发组织的结构、地理位置和网络拓扑,将美国实例提升为主实例,而将英国和印度实例降级为奴隶,会有什么好处?这将为我们提供一个聚合视图,但会将美国办事处和慢速VPN作为所有站点的单一故障点引入?此外,它还可能从团队手中夺走构建实例的所有权


  • 一个相当简单的方法是构建一个简单的HTML页面,使用Jenkins API从各种Jenkins实例中获取状态。 下面是一些可能适合您的JavaScript代码:


    这个Jenkins插件可能也很有趣

    插件说明:

    这个插件允许一个Jenkins的记录在另一个Jenkins上发布。典型的用例是在防火墙内运行构建,然后将结果发送给另一个面对外部世界的Jenkins


    到目前为止,我发现的唯一问题是,您必须确保作业在Jenkins实例之间具有不同的名称。如果“公共”Jenkins上已经有一个作业与您试图从“私人”Jenkins发布的作业同名,则该公共作业可能会被覆盖,并且似乎无法再次断开作业的连接。

    您是否检查过cacti,或者更好,您是否可以指定一名开发人员在每个位置触摸构建日志,并将状态推送到仪表板?不需要日志。詹金斯有一个RSS源。只需解决这个问题,把所有的信息放在一起并显示出来。