Skip to content

sevensolutions/nomad-iis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

HashiCorp Nomad IIS Task Driver

Build Release License

Nomad IIS Logo

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.

πŸŽ‰ Features

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.

πŸ“š Documentation

Please see the full documentation HERE.

πŸ›  How to Compile

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 :)

πŸ› How to Debug locally

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.

🎁 How to build Release version

Run the Release.pubxml or ReleaseWithMgmtApi.pubxml publish profile from Visual Studio. This will create a single binary exe called nomad_iis.exe.

🚧 TODOs and Known Issues

Check the Open Issues here.

β˜• Support

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!