Running Jenkins slave on different OS than master (and host)

I’m trying to introduce continuous integration in an old project, and we’ve got quite specific situation – it’s possible to put the CI server only on our test server that runs on CentOS. The server has quite a lot of unused RAM and CPU capability.

However, we need to run Ant builds on Windows (this also used to be how the project did packaging before), however it turned out that not the same output (after binary compare) is produced by just using Unix versions of Java and Ant.

  • Multiple Nginx configuration in docker
  • Cant run net-core docker container though VS2015
  • docker-compose nginx volumes not mounted
  • Gitlab behind HAProxy with ssl termination
  • How to run symfony via docker-composer
  • Can't download python packages onto Docker image
  • I drew up a diagram of how in my mind it could work, but I’m really wondering whether that is even possible (with already given tools).

    enter image description here

    The black part is implemented, I’m curious whether the red part could be possible. Could the Jenkins slave communicate with master on different OS?

  • Specify docker engine version with docker machine
  • How to ssh into docker-machine VirtualBox instance?
  • Docker registry notifications multiple push
  • Docker 1.12 swarm service add volumes
  • Why docker uses port numbers from 32768-65535?
  • Is there a way to repopulate with command-line a postgres db that I can't drop?
  • 2 Solutions collect form web for “Running Jenkins slave on different OS than master (and host)”

    It should be possible. I have a feeling you will need to play with your network settings. But if before you start changing anything see if you can start a headless slave by following these directions: https://wiki.jenkins-ci.org/display/JENKINS/Step+by+step+guide+to+set+up+master+and+slave+machine

    Using VirtualBox for CentOS, it will possible to run a Windows VM on your CentOS host.

    I’m not sure you need Docker to launch your Jenkins slave.

    It maybe better to use a standard JNLP Windows service to connect your Windows slave to Dockerised Jenkins master.

    If the master is not able to view the Windows node using this method, you may have to tweak your network configuration on the Windows VM.

    But I’m not sure it’s necessary.

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.