简体   繁体   中英

Jenkins Master-Slave Configuration

I'm starting to work with Jenkins , I'm a newbie, and I have a question regarding Master-slave configuration . How's usually used? Is it one slave per application ( ie: 3 applications, 3 slaves )?

PS: If you point me to a good Jenkins tutorial, will be appreciate it

First, my recommendation is to disable all the executors on the master and to build only on slaves.

On our Jenkins platform, we are using 7 CentOS slaves (VM) for the Maven builds (one executor per node). These slaves have the same Jenkins label ("build linux" for example). All the Maven projects are restricted to this "build linux" label: https://serverfault.com/questions/359793/tell-jenkins-to-run-a-specific-project-on-a-particular-slave-node

We also have dedicated slaves per platform (Linux 32bits, Linux 64bits, AIX 6, AIX 7, Windows 2008 R2, Windows 2012).

If you need to deploy your applications on dedicated Application Servers (Tomcat, Weblogic, ...), you can create one slave per platform.

Using Jenkins label is really useful to distribute your builds on the relevant slaves.

First recommendation is to use at least one slave and not use the master for building.

Read https://wiki.jenkins-ci.org/display/JENKINS/Distributed+builds (first answer when googling "jenkins master slave tutorial").

Then, add as much slaves as you want to distribute the load. The load does not directly depends on the number of "applications" but on the number of simultaneous builds and available slaves to perform those builds (you may have multiple jobs for a unique application). Typically, you will add slaves if your builds are " pending " for too much time: see https://wiki.jenkins-ci.org/display/JENKINS/Executor+Starvation

Tie the jobs to labels rather than directly to the slaves.

You will obviously have different slaves per build environment.

If your build is isolated enough and it is not multi-threaded, then it is also recommended to set about as much executors as core CPU. That is to make use of the slave resources; another solution is to use virtualization, containers (VM, docker...) as slaves with one executor per slave.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM