A task driver plugin to orchestrate Windows Services as Hashicorp Nomad job tasks.
A task is configured using the below options:
Option | Type | Description |
---|---|---|
executable | string |
Path to executable binary |
args | []string |
Command line arguments to pass to executable |
username | string |
Name of the account under which the service should run |
password | string |
Password of the account |
PS> nomad job run example/example.nomad
When run, the above example job will result in the creation of (2) services each named to reflect their respective JobName
& AllocID
values:
PS❯ get-service nomad.winsvc.* | select Status, Name, BinaryPathName
Status Name BinaryPathName
------ ---- --------------
Running nomad.winsvc.example.e402ad0a-7d7d-e72e-1823-64ba5ded3711 c:\hashicorp\nomad\data\alloc\e402ad0a-7d7d-e72e-1823-64ba5ded3711\task\local\example.exe
Running nomad.winsvc.example.c59a986f-6e14-f14f-d1ac-593cd86025b7 c:\hashicorp\nomad\data\alloc\c59a986f-6e14-f14f-d1ac-593cd86025b7\task\local\example.exe
Stopping the job will result in the graceful stop and eventual removal of the services as the Nomad job completes and gc is run.
- Support running as LOCALSYSTEM (perhaps just as default when username is nil)
- Document how to pass password through environment variables rather than exposed in job file
- Document how to support TopShelf services