1

I currently have one Jenkins master setup for our continuous integration project. Several different projects will need to be built using this Jenkins instance, each with different project dependencies as well as system dependencies.

From what I have read in the Jenkins documentation, a distributed build architecture can be implemented to provide different environments needed for builds/tests:

Jenkins supports the "master/slave" mode, where the workload of building projects are delegated to multiple "slave" nodes, allowing a single Jenkins installation to host a large number of projects, or to provide different environments needed for builds/tests.

I'd like to take this approach in order to avoid taking down the continuous integration system for all projects in the event there is an issue with a single project's dependencies.

Instead, just the agent for the project with the environment that has an issue would be down, and our other projects could build/test without issue.

My approach for this is going to be to launch Jenkins Slaves/Agents via SSH, which are each configured with what is required to build a specific project. In the jobs configuration, I'll then restrict where the project can be built to the appropriate slave/agent node.

  • Are there any issues in having Jenkins agents as virtual machines with resolvable IP addresses running on the same machine as Jenkins Master (as the goal is not necessarily to gain computing power, but to provide isolated environments for builds/tests)?
  • Should simply using virtualbox to launch the Slave/Agent virtual machines, and configuring those machines with the environment necessary to build/test the specific project be sufficient as far as the project's goals go?

Thanks to everyone in advance for any advice on how best to create isolated environments for my projects!

Community
  • 1
  • 1
J0991
  • 977
  • 2
  • 9
  • 16

0 Answers0