# windows-slave-installer-module
**Repository Path**: wangxinbing/windows-slave-installer-module
## Basic Information
- **Project Name**: windows-slave-installer-module
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-03-07
- **Last Updated**: 2025-03-07
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
Windows Agent Installer module for Jenkins
---
This module is a part of the Jenkins core, which provides features for managing agents as Windows services.
Provided features:
* Installation agents as Windows services, powered by the [Windows Service Wrapper (WinSW)](https://github.com/kohsuke/winsw).
* GUI option for the JNLP agents, which adds the `Install as a service` menu option.
* Automatic upgrade of Windows service wrapper versions to keep them aligned with the version from this module.
## Changelog
See the changelog [here](./CHANGELOG.md).
## Installation
### System requirements
* Starting from version 2.0, .NET Framework 4.0 or higher is required to install Jenkins agents as Windows services.
* Jenkins System Requirements apply to agents installed by this module
* [Windows Support Policy](https://www.jenkins.io/doc/administration/requirements/windows/)
* [Java requirements](https://www.jenkins.io/doc/administration/requirements/java/)
* [Hardware requirements](https://www.jenkins.io/doc/book/installing/#prerequisites)
### Automatic
Once you start a JNLP agents on Windows in the GUI mode (e.g. via Java WebStart),
It will display the `Install as a service` menu option once the Jenkins master finishes the agent configuration.
* The agent will be installed if your Windows account has enough permissions to install Windows Services and to access the System and Application event logs.
* If the current account does not have enough permissions, the installer will prompt for permission elevation.
### Manual
You can setup the agent service manually by following the [WinSW Installation Guide](https://github.com/kohsuke/winsw/blob/master/doc/installation.md#winsw-installation-guide).
### More info
See also the old installation guide on Jenkins Wiki
([link](https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+as+a+Windows+service)).
## Upgrading old agents
This section provides information about upgrading Jenkins agents installed as Windows services.
In order to apply the new features, you may need to...
* Upgrade the WinSW executable (manually or automatically)
* Upgrade the WinSW configuration (manually)
### Upgrading Windows Service Wrapper
Windows Agent Installer module may be able to automatically upgrade the agent in particular cases.
#### Automatic upgrade
1. Upgrade Jenkins to the version, which provides this module
2. Jenkins is expected to automatically upgrade `jenkins-slave.exe` executables if...
* The agent is **connected** to the Jenkins master
* If the agent is not connected, the update will be postponed till the agent connects to the master
* WinSW executable is located in `REMOTE_ROOT_DIR/jenkins-slave.exe` and writable by the agent
* WinSW executable is writable as well as `REMOTE_ROOT_DIR/jenkins-slave.exe.new` and `REMOTE_ROOT_DIR/jenkins-slave.exe.bak` files
3. If the upgrade happens, you should be able to see the message in the `Agent log` in Jenkins Web UI
4. Once upgrade is done, the changes will be applied on the next Windows service restart
#### Enabling Automatic upgrade
##### Windows Service Wrapper
The wrapper automatic upgrade is enabled by default.
##### Remoting executable (slave.jar)
Automatic upgrade is enabled for all newly created agents connected via HTTPs.
You may need to enable automatic upgrades manually for agents installed as a service before Jenkins 2.50 **OR** for agents connected to the master over HTTP.
In this case, open `jenkins-slave.xml` and add the following line to enable automatic upgrades:
```xml
```
#### Disabling Automatic upgrade
##### Windows Service Wrapper
In some cases Jenkins administrators may want to update WinSW to a version higher
than the version provided by this module.
By default it is not possible if the executable is named as `jenkins-slave.exe`,
because the module performs automatic update.
Starting from version `2.9` ([Jenkins 2.60](https://jenkins.io/changelog/#v2.60)), it is possible to disable such automatic upgrades by setting
the `org.jenkinsci.modules.windows_slave_installer.disableAutoUpdate` System Property
to `true`.
##### Remoting executable (slave.jar)
To disable the automatic Remoting executable upgrade, open `jenkins-slave.xml` and remove the following line:
```xml
```
#### Manual upgrade
Manual upgrade may be required if the agent does not comply with the requirements mentioned above.
Please note that Jenkins master **may override** the WinSW executable
if it is located in `REMOTE_ROOT_DIR/jenkins-slave.exe`.
It possible to disable the automatic upgrade only by using another path or by making the executable non-writable by the Windows agent.
1. Download the new WinSW release from [GitHub Releases](https://github.com/kohsuke/winsw/releases) or [NuGet](https://www.nuget.org/packages/WinSW/).
* Depending on the .NET Framework version in your system,
you can use `WinSW.NET2.exe` or `WinSW.NET4.exe` executable.
* If you need to run the `WinSW.NET2.exe` executable on .NET 4 or above,
see [this guide](https://github.com/kohsuke/winsw/blob/master/doc/installation.md#making-winsw-1x-compatible-with-net-runtime-40).
2. Replace the WinSW executable on your agent machines by the new version.
#### Upgrading agent configuration
Windows Agent Installer module **never** updates WinSW configuration files, but these files enable particular features on new agent installations.
For example `1.7` introduces [Runaway Process Killer](https://github.com/kohsuke/winsw/blob/master/doc/extensions/runawayProcessKiller.md) and [Automatic JNLP agent upgrade](https://issues.jenkins-ci.org/browse/JENKINS-39237).
It is advised to keep configurations up to date on all agents.
In order to update the configurations you, need to edit the XML configuration files (e.g. `jenkins-slave.xml`).
* The default configuration of agents can be found [here](https://github.com/jenkinsci/windows-slave-installer-module/blob/master/src/main/resources/org/jenkinsci/modules/windows_slave_installer/jenkins-slave.xml).
* All available options are described in the [WinSW XML config file specification](https://github.com/kohsuke/winsw/blob/master/doc/xmlConfigFile.md).