我开始使用Jenkins
,我是新手,我对Master-slave
配置有疑问。通常如何使用?它是一个每个应用程序的奴隶(i.e: 3 applications, 3 slaves
)?
PS:如果你指的是一个好的Jenkins
教程,将会很感激
答案 0 :(得分:0)
首先,我的建议是禁用主服务器上的所有执行程序,并仅在从服务器上构建。
在我们的Jenkins平台上,我们使用7个CentOS从站(VM)进行Maven构建(每个节点一个执行程序)。 这些从属设备具有相同的Jenkins标签("构建linux"例如)。 所有的Maven项目都限于这个"构建linux"标签: https://serverfault.com/questions/359793/tell-jenkins-to-run-a-specific-project-on-a-particular-slave-node
我们还有每个平台的专用从站(Linux 32位,Linux 64位,AIX 6,AIX 7,Windows 2008 R2,Windows 2012)。
如果您需要在专用的应用服务器(Tomcat,Weblogic,...)上部署应用程序,则可以为每个平台创建一个从属服务器。
使用Jenkins标签对于在相关从属服务器上分发构建版本非常有用。
答案 1 :(得分:0)
首先建议使用至少一个奴隶,而不是使用主人进行建设。
阅读https://wiki.jenkins-ci.org/display/JENKINS/Distributed+builds(谷歌搜索时的第一个答案" jenkins master slave tutorial")。
然后,添加尽可能多的奴隶以分配负载。负载并不直接取决于"应用程序的数量"但是在同时构建的数量和可用的从属服务器上执行这些构建(对于一个独特的应用程序,您可能有多个作业)。通常情况下,如果您的构建是" pending
"那么您将添加奴隶。太多时间:见https://wiki.jenkins-ci.org/display/JENKINS/Executor+Starvation
将作业绑定到labels
而不是直接绑定到奴隶。
每个构建环境显然会有不同的从属。
如果你的构建足够孤立并且它不是多线程的,那么还建议设置与核心CPU一样多的执行程序。那就是利用奴隶资源;另一种解决方案是使用虚拟化,容器(VM,docker ...)作为从属设备,每个从属设备有一个执行器。