詹金斯农场 - 多个詹金斯大师赛

时间:2018-01-10 14:51:45

标签: jenkins

我有一些詹金斯的例子。每个Jenkins都有自己的配置,节点等。 它们也有适当的别名:

  • jenkins.domain.tld - “主要”詹金斯
  • name1.jenkins.domain.tld - 另一个实例
  • ...
  • nameN.jenkins.domain.tld - 最后一个实例

其中一个作为主要詹金斯的游乐场 - 但这并不重要。

有没有办法或最佳实践如何保存和管理Jenkins的许多实例?在不同的主机上。我不需要共享节点,我知道有用于此目的的gearman工具。

现在我不是百分百确定应该怎么样。简单的页面包含所有实例,可以在它们之间轻松切换,从而在框架中运行Jenkins Web界面。 * .jenkins.domain.tld的JS用户脚本。

我回来了

我目前正在使用Simple Theme Plugin,我添加了一些JS:

jQuery(function($) {
  var currentUrl = window.location.pathname;
  var switchTool = '<div class="dropdown task" id="switch-jenkins" >'+
    '<a class="task-icon-link" href="#">'+
      '<img class="icon-switch-jenkins icon-md" src="/userContent/image/switch-jenkins.png">'+
    '</a>'+
    '<a class="task-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">'+
    'Switch Jenkins to'+
    '</a>'+
    '<div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">'+
     '<a class="dropdown-item" href="#" style="display: none"></a>'+
     '<a class="dropdown-item" href="http://jenkins1.tld'    +  currentUrl  +  '"><img class="icon-switch-jenkins" src="/userContent/image/jenkins1.png">jenkins1</a>'+
     '<a class="dropdown-item" href="http://jenkins2.tld'    +  currentUrl  +  '"><img class="icon-switch-jenkins" src="/userContent/image/jenkins2.png">jenkins2</a>'+
    '</div>'+
  '</div>';
  var switchContainer = $('#side-panel :first').addClass('switch-container');
  switchContainer.prepend(switchTool);
  $('#switch-jenkins').focusout(function(){
    setTimeout(function(){ document.getElementById("switch-jenkins").style.display="block";},200);
  });
});

1 个答案:

答案 0 :(得分:0)

我不知道任何公认的最佳做法。

我通过编写一个生成HTML页面的程序解决了这个问题,该页面在一个页面上显示了多个Jenkins母版的所有作业。作业应具有唯一的名称(如“ projectA-taskC”),以便它们可以轻松地位于不同的主服务器上(由于故障,维护,负载等)。每当发生变化时,只需重新生成HTML页面即可。

CloudBees曾经有一个针对Jenkins的产品,该产品显示了多个母版。听起来https://www.cloudbees.com/products/continuous-integration有点像现在那样,但是重点是管理(相对于最终用户)。