summaryrefslogtreecommitdiff
path: root/lib/ansible/modules/windows/win_nssm.py
blob: 1d15676e91ed1ee8157c6327034d53ddef0a7033 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
#!/usr/bin/python
# -*- coding: utf-8 -*-

# Copyright: (c) 2015, Heyo
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)

# this is a windows documentation stub.  actual code lives in the .ps1
# file of the same name

ANSIBLE_METADATA = {'metadata_version': '1.1',
                    'status': ['preview'],
                    'supported_by': 'community'}

DOCUMENTATION = r'''
---
module: win_nssm
version_added: "2.0"
short_description: Install a service using NSSM
description:
    - Install a Windows service using the NSSM wrapper.
    - NSSM is a service helper which doesn't suck. See U(https://nssm.cc/) for more information.
requirements:
    - "nssm >= 2.24.0 # (install via M(win_chocolatey)) C(win_chocolatey: name=nssm)"
options:
  name:
    description:
      - Name of the service to operate on.
    type: str
    required: true
  state:
    description:
      - State of the service on the system.
      - Values C(started), C(stopped), and C(restarted) are deprecated since v2.8,
        please use the M(win_service) module instead to start, stop or restart the service.
    type: str
    choices: [ absent, present, started, stopped, restarted ]
    default: present
  application:
    description:
      - The application binary to run as a service
      - Required when I(state) is C(present), C(started), C(stopped), or C(restarted).
    type: path
  executable:
    description:
    - The location of the NSSM utility (in case it is not located in your PATH).
    type: path
    default: nssm.exe
    version_added: "2.8.0"
  description:
    description:
      - The description to set for the service.
    type: str
    version_added: "2.8.0"
  display_name:
    description:
      - The display name to set for the service.
    type: str
    version_added: "2.8.0"
  working_directory:
    version_added: "2.8.0"
    description:
      - The working directory to run the service executable from (defaults to the directory containing the application binary)
    type: path
    aliases: [ app_directory, chdir ]
  stdout_file:
    description:
      - Path to receive output.
    type: path
  stderr_file:
    description:
      - Path to receive error output.
    type: path
  app_parameters:
    description:
      - A string representing a dictionary of parameters to be passed to the application when it starts.
      - DEPRECATED since v2.8, please use I(arguments) instead.
      - This is mutually exclusive with I(arguments).
    type: str
  arguments:
    description:
      - Parameters to be passed to the application when it starts.
      - This can be either a simple string or a list.
      - This parameter was renamed from I(app_parameters_free_form) in 2.8.
      - This is mutually exclusive with I(app_parameters).
    aliases: [ app_parameters_free_form ]
    type: str
    version_added: "2.3"
  dependencies:
    description:
      - Service dependencies that has to be started to trigger startup, separated by comma.
      - DEPRECATED since v2.8, please use the M(win_service) module instead.
    type: list
  user:
    description:
      - User to be used for service startup.
      - DEPRECATED since v2.8, please use the M(win_service) module instead.
    type: str
  password:
    description:
      - Password to be used for service startup.
      - DEPRECATED since v2.8, please use the M(win_service) module instead.
    type: str
  start_mode:
    description:
      - If C(auto) is selected, the service will start at bootup.
      - C(delayed) causes a delayed but automatic start after boot (added in version 2.5).
      - C(manual) means that the service will start only when another service needs it.
      - C(disabled) means that the service will stay off, regardless if it is needed or not.
      - DEPRECATED since v2.8, please use the M(win_service) module instead.
    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:
  - The service will NOT be started after its creation when C(state=present).
  - Once the service is created, you can use the M(win_service) module to start it or configure
    some additionals properties, such as its startup type, dependencies, service account, and so on.
author:
  - Adam Keech (@smadam813)
  - George Frank (@georgefrank)
  - Hans-Joachim Kliemeck (@h0nIg)
  - Michael Wild (@themiwi)
  - Kevin Subileau (@ksubileau)
  - Shachaf Goldstein (@Shachaf92)
'''

EXAMPLES = r'''
- name: Install the foo service
  win_nssm:
    name: foo
    application: C:\windows\foo.exe

# This will yield the following command: C:\windows\foo.exe bar "true"
- name: Install the Consul service with a list of parameters
  win_nssm:
    name: Consul
    application: C:\consul\consul.exe
    arguments:
      - agent
      - -config-dir=C:\consul\config

# This is strictly equivalent to the previous example
- name: Install the Consul service with an arbitrary string of parameters
  win_nssm:
    name: Consul
    application: C:\consul\consul.exe
    arguments: agent -config-dir=C:\consul\config


# Install the foo service, and then configure and start it with win_service
- name: Install the foo service, redirecting stdout and stderr to the same file
  win_nssm:
    name: foo
    application: C:\windows\foo.exe
    stdout_file: C:\windows\foo.log
    stderr_file: C:\windows\foo.log

- name: Configure and start the foo service using win_service
  win_service:
    name: foo
    dependencies: [ adf, tcpip ]
    username: foouser
    password: secret
    start_mode: manual
    state: started

- name: Remove the foo service
  win_nssm:
    name: foo
    state: absent
'''