mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-07-23 13:20:23 -07:00
win_nssm improvements (#21290)
* win_nssm improvements * updated version_added
This commit is contained in:
parent
912877c3dd
commit
eb6956e1dd
2 changed files with 27 additions and 3 deletions
|
@ -33,6 +33,7 @@ $state = Get-Attr $params "state" -default "present" -validateSet "present", "ab
|
||||||
|
|
||||||
$application = Get-Attr $params "application" -default $null
|
$application = Get-Attr $params "application" -default $null
|
||||||
$appParameters = Get-Attr $params "app_parameters" -default $null
|
$appParameters = Get-Attr $params "app_parameters" -default $null
|
||||||
|
$appParametersFree = Get-Attr $params "app_parameters_free_form" -default $null
|
||||||
$startMode = Get-Attr $params "start_mode" -default "auto" -validateSet "auto", "manual", "disabled" -resultobj $result
|
$startMode = Get-Attr $params "start_mode" -default "auto" -validateSet "auto", "manual", "disabled" -resultobj $result
|
||||||
|
|
||||||
$stdoutFile = Get-Attr $params "stdout_file" -default $null
|
$stdoutFile = Get-Attr $params "stdout_file" -default $null
|
||||||
|
@ -42,6 +43,10 @@ $dependencies = Get-Attr $params "dependencies" -default $null
|
||||||
$user = Get-Attr $params "user" -default $null
|
$user = Get-Attr $params "user" -default $null
|
||||||
$password = Get-Attr $params "password" -default $null
|
$password = Get-Attr $params "password" -default $null
|
||||||
|
|
||||||
|
if (($appParameters -ne $null) -and ($appParametersFree -ne $null))
|
||||||
|
{
|
||||||
|
Fail-Json $result "Use either app_parameters or app_parameteres_free_form, but not both"
|
||||||
|
}
|
||||||
|
|
||||||
#abstract the calling of nssm because some PowerShell environments
|
#abstract the calling of nssm because some PowerShell environments
|
||||||
#mishandle its stdout(which is Unicode) as UTF8
|
#mishandle its stdout(which is Unicode) as UTF8
|
||||||
|
@ -209,7 +214,8 @@ Function Nssm-Update-AppParameters
|
||||||
[string]$name,
|
[string]$name,
|
||||||
[Parameter(Mandatory=$true)]
|
[Parameter(Mandatory=$true)]
|
||||||
[AllowEmptyString()]
|
[AllowEmptyString()]
|
||||||
[string]$appParameters
|
[string]$appParameters,
|
||||||
|
[string]$appParametersFree
|
||||||
)
|
)
|
||||||
|
|
||||||
$cmd = "get ""$name"" AppParameters"
|
$cmd = "get ""$name"" AppParameters"
|
||||||
|
@ -248,13 +254,17 @@ Function Nssm-Update-AppParameters
|
||||||
Set-Attr $result "nssm_app_parameters_keys" $appParamKeys
|
Set-Attr $result "nssm_app_parameters_keys" $appParamKeys
|
||||||
Set-Attr $result "nssm_app_parameters_vals" $appParamVals
|
Set-Attr $result "nssm_app_parameters_vals" $appParamVals
|
||||||
}
|
}
|
||||||
|
elseif ($appParametersFree) {
|
||||||
|
Set-Attr $result "nssm_app_parameters_free_form" $appParametersFree
|
||||||
|
$singleLineParams = $appParametersFree
|
||||||
|
}
|
||||||
|
|
||||||
Set-Attr $result "nssm_app_parameters" $appParameters
|
Set-Attr $result "nssm_app_parameters" $appParameters
|
||||||
Set-Attr $result "nssm_single_line_app_parameters" $singleLineParams
|
Set-Attr $result "nssm_single_line_app_parameters" $singleLineParams
|
||||||
|
|
||||||
if ($results -ne $singleLineParams)
|
if ($results -ne $singleLineParams)
|
||||||
{
|
{
|
||||||
if ($appParameters)
|
if ($appParameters -or $appParametersFree)
|
||||||
{
|
{
|
||||||
$cmd = "set ""$name"" AppParameters $singleLineParams"
|
$cmd = "set ""$name"" AppParameters $singleLineParams"
|
||||||
} else {
|
} else {
|
||||||
|
@ -648,7 +658,7 @@ Function Nssm-Restart
|
||||||
Function NssmProcedure
|
Function NssmProcedure
|
||||||
{
|
{
|
||||||
Nssm-Install -name $name -application $application
|
Nssm-Install -name $name -application $application
|
||||||
Nssm-Update-AppParameters -name $name -appParameters $appParameters
|
Nssm-Update-AppParameters -name $name -appParameters $appParameters -appParametersFree $appParametersFree
|
||||||
Nssm-Set-Output-Files -name $name -stdout $stdoutFile -stderr $stderrFile
|
Nssm-Set-Output-Files -name $name -stdout $stdoutFile -stderr $stderrFile
|
||||||
Nssm-Update-Dependencies -name $name -dependencies $dependencies
|
Nssm-Update-Dependencies -name $name -dependencies $dependencies
|
||||||
Nssm-Update-Credentials -name $name -user $user -password $password
|
Nssm-Update-Credentials -name $name -user $user -password $password
|
||||||
|
|
|
@ -75,6 +75,10 @@ options:
|
||||||
- Parameters to be passed to the application when it starts
|
- Parameters to be passed to the application when it starts
|
||||||
required: false
|
required: false
|
||||||
default: null
|
default: null
|
||||||
|
app_parameters_free_form:
|
||||||
|
version_added: "2.3.0"
|
||||||
|
description:
|
||||||
|
- Single string of parameters to be passed to the service. Use either this or 'app_parameters', not both
|
||||||
dependencies:
|
dependencies:
|
||||||
description:
|
description:
|
||||||
- Service dependencies that has to be started to trigger startup, separated by comma.
|
- Service dependencies that has to be started to trigger startup, separated by comma.
|
||||||
|
@ -144,6 +148,16 @@ EXAMPLES = r'''
|
||||||
_: bar
|
_: bar
|
||||||
"-file": "output.bat"
|
"-file": "output.bat"
|
||||||
|
|
||||||
|
# Use the single line parameters option to specify an arbitrary string of parameters
|
||||||
|
# for the service executable
|
||||||
|
- name: Make sure the Consul service runs
|
||||||
|
win_nssm:
|
||||||
|
name: consul
|
||||||
|
application: "C:\\consul\\consul.exe"
|
||||||
|
app_parameters_free_form: "agent -config-dir=C:\\consul\\config"
|
||||||
|
stdout_file: "C:\\consul\\log.txt"
|
||||||
|
stderr_file: "C:\\consul\\error.txt"
|
||||||
|
|
||||||
# Install and start the foo service, redirecting stdout and stderr to the same file
|
# Install and start the foo service, redirecting stdout and stderr to the same file
|
||||||
- win_nssm:
|
- win_nssm:
|
||||||
name: foo
|
name: foo
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue