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.

  • Kubernetes authentication issues pulling ECR images
  • What is the available information about the files and folder inside the docker container?
  • Local development with docker - do I need 2 Dockerfiles?
  • Split Django project
  • Couldn't start exited docker container after restart of host machine
  • How to mitigate privilege escalation in Docker Containers to secure the host FS
  • 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?

  • example to deploy docker image on kubernetes from java
  • Scaling Rivescript chats
  • Docker - Restrictions regarding naming container
  • returned a non-zero code: 1
  • Docker RUN statement (modifying a file) not executed
  • apt-get not working in Dockerfile
  • 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:

    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.