mirror of
https://github.com/thegeeklab/ansible-later.git
synced 2024-11-16 10:00:39 +00:00
152 lines
5.0 KiB
Python
152 lines
5.0 KiB
Python
|
#!/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: NSSM - the Non-Sucking Service Manager
|
||
|
description:
|
||
|
- 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.
|
||
|
required: true
|
||
|
state:
|
||
|
description:
|
||
|
- State of the service on the system.
|
||
|
- Note that NSSM actions like "pause", "continue", "rotate" do not fit the declarative style of ansible, so these should be implemented via the
|
||
|
ansible command module.
|
||
|
choices: [ absent, present, started, stopped, restarted ]
|
||
|
default: started
|
||
|
application:
|
||
|
description:
|
||
|
- The application binary to run as a service
|
||
|
- "Specify this whenever the service may need to be installed (state: present, started, stopped, restarted)"
|
||
|
- "Note that the application name must look like the following, if the directory includes spaces:"
|
||
|
- 'nssm install service "C:\\Program Files\\app.exe\\" "C:\\Path with spaces\\"'
|
||
|
- >
|
||
|
See commit 0b386fc1984ab74ee59b7bed14b7e8f57212c22b in the nssm.git project for more info:
|
||
|
U(https://git.nssm.cc/?p=nssm.git;a=commit;h=0b386fc1984ab74ee59b7bed14b7e8f57212c22b)
|
||
|
stdout_file:
|
||
|
description:
|
||
|
- Path to receive output.
|
||
|
stderr_file:
|
||
|
description:
|
||
|
- Path to receive error output.
|
||
|
app_parameters:
|
||
|
description:
|
||
|
- A string representing a dictionary of parameters to be passed to the application when it starts.
|
||
|
- Use either this or C(app_parameters_free_form), not both.
|
||
|
app_parameters_free_form:
|
||
|
version_added: "2.3.0"
|
||
|
description:
|
||
|
- Single string of parameters to be passed to the service.
|
||
|
- Use either this or C(app_parameters), not both.
|
||
|
dependencies:
|
||
|
description:
|
||
|
- Service dependencies that has to be started to trigger startup, separated by comma.
|
||
|
user:
|
||
|
description:
|
||
|
- User to be used for service startup.
|
||
|
password:
|
||
|
description:
|
||
|
- Password to be used for service startup.
|
||
|
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.
|
||
|
choices: [ auto, delayed, disabled, manual ]
|
||
|
default: auto
|
||
|
author:
|
||
|
- Adam Keech (@smadam813)
|
||
|
- George Frank (@georgefrank)
|
||
|
- Hans-Joachim Kliemeck (@h0nIg)
|
||
|
- Michael Wild (@themiwi)
|
||
|
'''
|
||
|
|
||
|
EXAMPLES = r'''
|
||
|
# Install and start the foo service
|
||
|
- win_nssm:
|
||
|
name: foo
|
||
|
application: C:\windows\foo.exe
|
||
|
|
||
|
# Install and start the foo service with a key-value pair argument
|
||
|
# This will yield the following command: C:\windows\foo.exe -bar true
|
||
|
- win_nssm:
|
||
|
name: foo
|
||
|
application: C:\windows\foo.exe
|
||
|
app_parameters: -bar=true
|
||
|
|
||
|
# Install and start the foo service with a single parameter
|
||
|
# This will yield the following command: C:\windows\\foo.exe bar
|
||
|
- win_nssm:
|
||
|
name: foo
|
||
|
application: C:\windows\foo.exe
|
||
|
app_parameters: _=bar
|
||
|
|
||
|
# Install and start the foo service with a mix of single params, and key value pairs
|
||
|
# This will yield the following command: C:\windows\\foo.exe bar -file output.bat -foo false
|
||
|
- win_nssm:
|
||
|
name: foo
|
||
|
application: C:\windows\foo.exe
|
||
|
app_parameters: _=bar; -file=output.bat; -foo=false
|
||
|
|
||
|
# 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
|
||
|
- win_nssm:
|
||
|
name: foo
|
||
|
application: C:\windows\foo.exe
|
||
|
stdout_file: C:\windows\foo.log
|
||
|
stderr_file: C:\windows\foo.log
|
||
|
|
||
|
# Install and start the foo service, but wait for dependencies tcpip and adf
|
||
|
- win_nssm:
|
||
|
name: foo
|
||
|
application: C:\windows\foo.exe
|
||
|
dependencies: 'adf,tcpip'
|
||
|
|
||
|
# Install and start the foo service with dedicated user
|
||
|
- win_nssm:
|
||
|
name: foo
|
||
|
application: C:\windows\foo.exe
|
||
|
user: foouser
|
||
|
password: secret
|
||
|
|
||
|
# Install the foo service but do not start it automatically
|
||
|
- win_nssm:
|
||
|
name: foo
|
||
|
application: C:\windows\foo.exe
|
||
|
state: present
|
||
|
start_mode: manual
|
||
|
|
||
|
# Remove the foo service
|
||
|
- win_nssm:
|
||
|
name: foo
|
||
|
state: absent
|
||
|
'''
|