A task driver for HashiCorp Nomad to run web-applications in IIS on Windows machines. Unlike most other Nomad task drivers, this one is written in the C# language using ASP.NET 8. It uses the Microsoft.Web.Administration-API to communicate with IIS. Feel free to use it as-is or as a reference implementation for your own C#-based Nomad-plugins.
[!NOTE]
This document always represents the latest version, which may not have been released yet.
Therefore, some features may not be available currently but will be available soon. You can use the GIT-Tags to check individual versions.
Feature | Status | Details |
---|---|---|
Single Web App per Nomad Task | ✔ | The Task Driver creates an IIS Application Pool and Website for every Nomad Task in the job specification. |
Multiple Applications | ✔ | Support for multiple sub-applications below the website. |
Virtual Directories | ✔ | Support for multiple virtual directories below an application. |
HTTP Bindings | ✔ | |
HTTPS Bindings | ✔ | Details |
Environment Variables | ✔ | Details |
Resource Statistics | ✔ | |
Logging | ✔ | Experimental UDP logging. See GH-6 for details. |
Signals | ✔ | Details |
Exec (Shell Access) | ❌ | I'am playing around a little bit but don't want to give you hope :/. See GH-15 for status. |
Filesystem Isolation | 🔶 | Details |
Nomad Networking | ❌ | |
Management API | ✔ | Nomad IIS provides a very powerfull Management API with functionalities like taking a local screenshot or creating a process dump. |
Please see the full documentation HERE.
Run the setup command to download the nomad binary.
.\setup.ps1
Build the project by running the following command:
cd src
dotnet build
Of course you can also compile with Visual Studio :)
There is a launch-profile to run nomad in dev-mode which automatically loads the driver plugin. Open Visual Studio, select the Nomad (Dev) launch profile and press F5.
Note: To debug the driver itself, you need to attach the debugger to the nomad_iis.exe process manually.
Run the Release.pubxml or ReleaseWithMgmtApi.pubxml publish profile from Visual Studio. This will create a single binary exe called nomad_iis.exe.
Check the Open Issues here.
I put a lot of ❤️ and effort into this project and i want to make it the best IIS driver for Nomad. Every contribution helps me to improve it, fix bugs and develop new features. Please also dont forget to ★ the repo. Thank You!