[{"Name":"ADSync","StartType":2,"Status":4,"CanShutdown":true,"CanStop":true,"CanPauseAndContinue":false},
{"Name":"AeLookupSvc","StartType":3,"Status":1,"CanShutdown":false,"CanStop":false,"CanPauseAndContinue":false},
{"Name":"ALG","StartType":3,"Status":1,"CanShutdown":false,"CanStop":false,"CanPauseAndContinue":false},
{"Name":"AppIDSvc","StartType":3,"Status":1,"CanShutdown":false,"CanStop":false,"CanPauseAndContinue":false},
{"Name":"Appinfo","StartType":3,"Status":1,"CanShutdown":false,"CanStop":false,"CanPauseAndContinue":false}]
Desired output is a key based on the name with the key/value pairs as a subset, example:
vars.windows_service["ADSync"] = {
name = "ADSync"
starttype = 2
status = 4
canshutdown = true
canstop = true
canpauseandcontinue = false
}
The reasoning behind this is to let Puppet discover services that icinga can monitor. I have a script that emits the services on Windows to Puppet, classifying them (Standard windows service, role (AD/IIS) or 3rd party, letting us quickly monitor anything we dont know about), the same is easily done for IIS' websites and AppPools amongst other examples.
With Director we can then almost automate an approval process for everything in Icinga2, letting everything come in "unclassified" and be monitored from day 0, letting the NOC take care of classifying if its production, dev or test by a process going on after its already being monitored, rather than trying to figure out what is on the box. ๐ ๐ ๐