I have just begun evaluating Otter. I currently have a Windows 2012 R2 instance running the Otter Agent.
The server is a member of the IIS role, which itself is a member of the Configurable role.
The Configurable role has a plan that is defined as:
##AH:UseTextMode
call Ensure-PowerShell-5();
The Ensure-PowerShell-5 module is stored in a Git based Raft, named Default. The module itself is defined as:
##AH:UseTextMode
##AH:Description Ensure PowerShell version 5 or later is installed.
module Ensure-PowerShell-5
{
# Ensure PowerShell version 5 or later is installed
{
PSEnsure
(
Key: PowerShell-v5,
Value: True,
Collect: $PSVersionTable.PSVersion.Major -ge 5,
Configure: '@(Get-Service | Where-Object {$_.Name -eq "INEDOBMAGT"}).Count',
Debug: true,
Verbose: true
);
# Only executes if PSEnsure Configure executed
Restart-Server();
}
}
The Ensure-PowerShell-5 module is currently incomplete, but it does properly detect configuration drift. When attempting to remediate the drift by choosing the Remediate with Job
button on the Servers
page, the execution fails.
The Service log contains the error:
Category: ExecutionDispatcherRunner
Message: Could not initiate execution #334
Details:
System.NullReferenceException: Object reference not set to an instance of an object.
at Inedo.Otter.Service.Executions.ActiveJobExecution.<BuildConfigurationExecuter>d__4.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Inedo.Otter.Service.Executions.ActiveJobExecution.<CreateJobExecutionAsync>d__3.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Inedo.Otter.Service.Executions.ActiveExecution.<CreateAsync>d__3.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Inedo.Otter.Service.Executions.ExecutionDispatcherRunner.<RunAsync>d__7.MoveNext()
Orchestration Plans will run successfully.
Any assistance in determining the cause of this failure would be greatly appreciated. As it stands, I can detect drift, but am unable to remedy the situation.
Product: Otter
Version: 2.0.11