我有一些詹金斯的例子。每个Jenkins都有自己的配置,节点等。 它们也有适当的别名:
其中一个作为主要詹金斯的游乐场 - 但这并不重要。
有没有办法或最佳实践如何保存和管理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);
});
});
答案 0 :(得分:0)
我不知道任何公认的最佳做法。
我通过编写一个生成HTML页面的程序解决了这个问题,该页面在一个页面上显示了多个Jenkins母版的所有作业。作业应具有唯一的名称(如“ projectA-taskC”),以便它们可以轻松地位于不同的主服务器上(由于故障,维护,负载等)。每当发生变化时,只需重新生成HTML页面即可。
CloudBees曾经有一个针对Jenkins的产品,该产品显示了多个母版。听起来https://www.cloudbees.com/products/continuous-integration有点像现在那样,但是重点是管理(相对于最终用户)。