diff --git a/changelogs/fragments/win_nssm-Implement-additional-parameters.yml b/changelogs/fragments/win_nssm-Implement-additional-parameters.yml new file mode 100644 index 00000000000..62e214cb4d5 --- /dev/null +++ b/changelogs/fragments/win_nssm-Implement-additional-parameters.yml @@ -0,0 +1,2 @@ +minor_changes: + - "win_nssm - Implement additional parameters - (https://github.com/ansible/ansible/issues/62620)" diff --git a/lib/ansible/modules/windows/win_nssm.ps1 b/lib/ansible/modules/windows/win_nssm.ps1 index 1bb6542a595..e351beebf5a 100644 --- a/lib/ansible/modules/windows/win_nssm.ps1 +++ b/lib/ansible/modules/windows/win_nssm.ps1 @@ -38,6 +38,11 @@ $stderrFile = Get-AnsibleParam -obj $params -name "stderr_file" -type "path" $executable = Get-AnsibleParam -obj $params -name "executable" -type "path" -default "nssm.exe" +$app_rotate_bytes = Get-AnsibleParam -obj $params -name "app_rotate_bytes" -type "int" -default 104858 +$app_rotate_online = Get-AnsibleParam -obj $params -name "app_rotate_online" -type "int" -default 0 -validateset 0,1 +$app_stop_method_console = Get-AnsibleParam -obj $params -name "app_stop_method_console" -type "int" +$app_stop_method_skip = Get-AnsibleParam -obj $params -name "app_stop_method_skip" -type "int" -validateset 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 + # Deprecated options since 2.8. Remove in 2.12 $startMode = Get-AnsibleParam -obj $params -name "start_mode" -type "str" -default "auto" -validateset $start_modes_map.Keys -resultobj $result $dependencies = Get-AnsibleParam -obj $params -name "dependencies" -type "list" @@ -439,14 +444,14 @@ if ($state -eq 'absent') { Update-NssmServiceParameter -parameter "AppRotateFiles" -value 1 @common_params #don't rotate until the service restarts - Update-NssmServiceParameter -parameter "AppRotateOnline" -value 0 @common_params + Update-NssmServiceParameter -parameter "AppRotateOnline" -value $app_rotate_online @common_params #both of the below conditions must be met before rotation will happen #minimum age before rotating Update-NssmServiceParameter -parameter "AppRotateSeconds" -value 86400 @common_params #minimum size before rotating - Update-NssmServiceParameter -parameter "AppRotateBytes" -value 104858 @common_params + Update-NssmServiceParameter -parameter "AppRotateBytes" -value $app_rotate_bytes @common_params ############## DEPRECATED block since 2.8. Remove in 2.12 ############## @@ -471,6 +476,16 @@ if ($state -eq 'absent') { } ######################################################################## + # Added per users` requests + if ($null -ne $app_stop_method_console) + { + Update-NssmServiceParameter -parameter "AppStopMethodConsole" -value $app_stop_method_console @common_params + } + + if ($null -ne $app_stop_method_skip) + { + Update-NssmServiceParameter -parameter "AppStopMethodSkip" -value $app_stop_method_skip @common_params + } } } diff --git a/lib/ansible/modules/windows/win_nssm.py b/lib/ansible/modules/windows/win_nssm.py index d83e085f807..499885fa8e5 100644 --- a/lib/ansible/modules/windows/win_nssm.py +++ b/lib/ansible/modules/windows/win_nssm.py @@ -110,6 +110,51 @@ options: type: str choices: [ auto, delayed, disabled, manual ] default: auto + app_rotate_bytes: + description: + - NSSM will not rotate any file which is smaller than the configured number of bytes. + type: int + default: 104858 + version_added: "2.10" + app_rotate_online: + description: + - If set to 1, nssm can rotate files which grow to the configured file size limit while the service is running. + type: int + choices: + - 0 + - 1 + default: 0 + version_added: "2.10" + app_stop_method_console: + description: + - Time to wait after sending Control-C. + type: int + version_added: "2.10" + app_stop_method_skip: + description: + - To disable service shutdown methods, set to the sum of one or more of the numbers + - 1 - Don't send Control-C to the console. + - 2 - Don't send WM_CLOSE to windows. + - 4 - Don't send WM_QUIT to threads. + - 8 - Don't call TerminateProcess(). + type: int + choices: + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + - 8 + - 9 + - 10 + - 11 + - 12 + - 13 + - 14 + - 15 + version_added: "2.10" seealso: - module: win_service notes: @@ -122,6 +167,7 @@ author: - Hans-Joachim Kliemeck (@h0nIg) - Michael Wild (@themiwi) - Kevin Subileau (@ksubileau) + - Shachaf Goldstein (@Shachaf92) ''' EXAMPLES = r'''