Nomad IIS Driver
A driver plugin for nomad to orchestrate windows IIS website tasks.
A "Website" is a combination of an application pool and a site (app, vdir, etc.).
Each allocation will create an application pool and site with the name being the allocation ID (guid).
Requirements
- Nomad >=v0.11
- Go >=v1.11 (to build the provider plugin)
- Vagrant >=v2.2
- VirtualBox v6.0 (or any version vagrant is compatible with)
Building the driver
$ mkdir -p $GOPATH/src/github.com/Roblox
$ cd $GOPATH/src/github.com/Roblox
$ git clone git@github.com:Roblox/nomad-driver-iis.git
$ cd nomad-driver-iis
$ make build (This will build your nomad-driver-iis executable)
Tests
$ make test
This will run nomad-driver-iis tests in the provisioned vagrant VM.
Contributing to nomad-iis-driver
Want to fix a bug, update documentation or add a feature?
PR's are welcome!!
Test your changes locally before contributing.
The easiest way to test your changes is make converge
.
make converge
will:
- Build the executable (win_iis.exe)
- Spin up a vagrant VM (
vagrant up
) if it's not already running.
- Provision your changes into the VM (
vagrant provision
)
Once you are in the VM:
- nomad-driver-iis codebase (hostpath) is mounted at
C:\vagrant
in the VM.
- Plugin (executable) is available at
C:\ProgramData\nomad\plugin
- Logs are available at
C:\ProgramData\nomad\logs
.
- Tail on logs in powershell:
$ Get-Content -path "C:\ProgramData\nomad\logs\nomad-output.log" -wait
- Launch an example IIS website:
$ nomad job run C:\vagrant\examples\iis-test.nomad
Cleanup
make clean
This will destroy your vagrant VM (along with all your changes) and remove the executable (win_iis.exe).