mocofound / nomad-driver-iis

Nomad task driver for running windows IIS services.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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:

  1. Build the executable (win_iis.exe)
  2. Spin up a vagrant VM (vagrant up) if it's not already running.
  3. Provision your changes into the VM (vagrant provision)

Once you are in the VM:

  1. nomad-driver-iis codebase (hostpath) is mounted at C:\vagrant in the VM.
  2. Plugin (executable) is available at C:\ProgramData\nomad\plugin
  3. Logs are available at C:\ProgramData\nomad\logs.
  4. Tail on logs in powershell:
    $ Get-Content -path "C:\ProgramData\nomad\logs\nomad-output.log" -wait
    
  5. 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).

License

Copyright 2020 Roblox Corporation

Licensed under the Apache License, Version 2.0 (the "License"). For more information read the License.

About

Nomad task driver for running windows IIS services.

License:Apache License 2.0


Languages

Language:Go 96.8%Language:PowerShell 1.9%Language:HCL 0.7%Language:Makefile 0.6%