nosh – Manage services with nosh¶
New in version 2.5.
Synopsis¶
Control running and enabled state for system-wide or user services.
BSD and Linux systems are supported.
Requirements¶
The below requirements are needed on the host that executes this module.
A system with an active nosh service manager, see Notes for further information.
Parameters¶
Parameter | Choices/Defaults | Comments |
---|---|---|
enabled
boolean
|
|
Enable or disable the service, independently of
*.preset file preference or running state. Mutually exclusive with preset. Will take effect prior to state=reset. |
name
-
/ required
|
Name of the service to manage.
|
|
preset
boolean
|
|
Enable or disable the service according to local preferences in *.preset files. Mutually exclusive with enabled. Only has an effect if set to true. Will take effect prior to state=reset.
|
state
-
|
|
started /stopped are idempotent actions that will not run commands unless necessary. restarted will always bounce the service. reloaded will send a SIGHUP or start the service. reset will start or stop the service according to whether it is enabled or not. |
user
boolean
|
|
Run system-control talking to the calling user's service manager, rather than the system-wide service manager.
|
Notes¶
Note
Information on the nosh utilities suite may be found at https://jdebp.eu/Softwares/nosh/.
Examples¶
- name: start dnscache if not running
nosh: name=dnscache state=started
- name: stop mpd, if running
nosh: name=mpd state=stopped
- name: restart unbound or start it if not already running
nosh:
name: unbound
state: restarted
- name: reload fail2ban or start it if not already running
nosh:
name: fail2ban
state: reloaded
- name: disable nsd
nosh: name=nsd enabled=no
- name: for package installers, set nginx running state according to local enable settings, preset and reset
nosh: name=nginx preset=True state=reset
- name: reboot the host if nosh is the system manager, would need a "wait_for*" task at least, not recommended as-is
nosh: name=reboot state=started
- name: using conditionals with the module facts
tasks:
- name: obtain information on tinydns service
nosh: name=tinydns
register: result
- name: fail if service not loaded
fail: msg="The {{ result.name }} service is not loaded"
when: not result.status
- name: fail if service is running
fail: msg="The {{ result.name }} service is running"
when: result.status and result.status['DaemontoolsEncoreState'] == "running"
Return Values¶
Common return values are documented here, the following are the fields unique to this module:
Key | Returned | Description | |
---|---|---|---|
enabled
boolean
|
success |
whether the service is enabled at system bootstrap
Sample:
True
|
|
name
string
|
success |
name used to find the service
Sample:
sshd
|
|
preset
boolean
|
success |
whether the enabled status reflects the one set in the relevant
*.preset file |
|
service_path
string
|
success |
resolved path for the service
Sample:
/var/sv/sshd
|
|
state
string
|
if state option is used |
service process run state,
None if the service is not loaded and will not be startedSample:
reloaded
|
|
status
complex
|
success |
a dictionary with the key=value pairs returned by `system-control show-json` or
None if the service is not loaded |
|
After
-
|
|
||
Before
-
|
|
||
Conflicts
-
|
|
||
DaemontoolsEncoreState
-
|
|
||
DaemontoolsState
-
|
|
||
Enabled
-
|
|
||
LogService
-
|
|
||
MainPID
-
|
|
||
Paused
-
|
|
||
ReadyAfterRun
-
|
|
||
RemainAfterExit
-
|
|
||
Required-By
-
|
|
||
RestartExitStatusCode
-
|
|
||
RestartExitStatusNumber
-
|
|
||
RestartTimestamp
-
|
|
||
RestartUTCTimestamp
-
|
|
||
RunExitStatusCode
-
|
|
||
RunExitStatusNumber
-
|
|
||
RunTimestamp
-
|
|
||
RunUTCTimestamp
-
|
|
||
StartExitStatusCode
-
|
|
||
StartExitStatusNumber
-
|
|
||
StartTimestamp
-
|
|
||
StartUTCTimestamp
-
|
|
||
StopExitStatusCode
-
|
|
||
StopExitStatusNumber
-
|
|
||
Stopped-By
-
|
|
||
StopTimestamp
-
|
|
||
StopUTCTimestamp
-
|
|
||
Timestamp
-
|
|
||
UTCTimestamp
-
|
|
||
Want
-
|
|
||
Wanted-By
-
|
|
||
Wants
-
|
|
||
user
boolean
|
success |
whether the user-level service manager is called
|
Status¶
This module is not guaranteed to have a backwards compatible interface. [preview]
This module is maintained by the Ansible Community. [community]