Jenkins remoting is an executable JAR, which implements communication layer in Jenkins automation server. It's being used for controller <=> agent and controller <=> CLI communications.
In general, this library contains the bootstrap code to bridge separate JVMs into a single semi-shared space. It includes: TCP-based communication protocols, data serialization, Java classloading.
The library is reusable outside Jenkins.
Jenkins Remoting libraries are supplied as a part of the Jenkins distributions,
and it is recommended to use versions from there to ensure compatibility with your Jenkins instance.
You can download the ${JENKINS_URL}/jnlpJars/agent.jar
from your Jenkins server.
If you need a specific Remoting version, it can be downloaded from the Jenkins artifact repository.
Recent artifacts are available here.
For usage in Docker, the Jenkins project also provides official agent images which bundle Remoting: jenkins/agent and jenkins/inbound-agent. We recommend using and extending these images if you need to run agents in Docker.
Remoting documentation is under development. More info will appear soon. Feel free to contribute.
User documentation:
- Changelog - Remoting release notes
- Launching inbound agents - Mechanisms and parameters for launching inbound agents
- Remoting Protocols - Overview of protocols integrated with Jenkins
- Remoting Configuration - Configuring remoting agents
- Logging - Logging
- Work Directory - Remoting work directory (new in Remoting
3.8
) - Jenkins Specifics - Notes on using remoting in Jenkins
- Troubleshooting - Investigating and solving common remoting issues
Previous versions:
- Changelog - 2.x - Changelog for the Remoting
2.x
stabilization releases
Developer documentation:
Remoting library uses the Jenkins bugtracker.
Issues should be reported there in the JENKINS
project with the remoting
component.
See How to report an issue for more details about Jenkins issue reporting.
- Remoting Architecture Overview by Winston Prakash, Oracle (the information is outdated)
- Making your plugin behave in distributed Jenkins
- Writing an SCM plugin. Remoting examples
- Troubleshooting remoting issues
- Scaling Jenkins to Hundreds of Nodes by Akshay Dayal, Google (remoting optimization, JNLP3)