community.general.nosh – Manage services with nosh
Note
This plugin is part of the community.general collection (version 2.0.1).
To install it use: ansible-galaxy collection install community.general.
To use it in a playbook, specify: community.general.nosh.
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    string / 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    string    |   
  |   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
  community.general.nosh: name=dnscache state=started
- name: Stop mpd, if running
  community.general.nosh: name=mpd state=stopped
- name: Restart unbound or start it if not already running
  community.general.nosh:
    name: unbound
    state: restarted
- name: Reload fail2ban or start it if not already running
  community.general.nosh:
    name: fail2ban
    state: reloaded
- name: Disable nsd
  community.general.nosh: name=nsd enabled=no
- name: For package installers, set nginx running state according to local enable settings, preset and reset
  community.general.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
  community.general.nosh: name=reboot state=started
- name: Using conditionals with the module facts
  tasks:
    - name: Obtain information on tinydns service
      community.general.nosh: name=tinydns
      register: result
    - name: Fail if service not loaded
      ansible.builtin.fail: msg="The {{ result.name }} service is not loaded"
      when: not result.status
    - name: Fail if service is running
      ansible.builtin.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 fileSample:  False   |  |
|   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    list / elements=string    |  success |   Sample:  ['/etc/service-bundles/targets/basic', '../sshdgenkeys', 'log']   |  |
|   Before    list / elements=string    |  success |   Sample:  ['/etc/service-bundles/targets/shutdown']   |  |
|   Conflicts    list / elements=string    |  success |   Sample:  []   |  |
|   DaemontoolsEncoreState    string    |  success |   Sample:  running   |  |
|   DaemontoolsState    string    |  success |   Sample:  up   |  |
|   Enabled    boolean    |  success |   Sample:  True   |  |
|   LogService    string    |  success |   Sample:  ../cyclog@sshd   |  |
|   MainPID    integer    |  success |   Sample:  661   |  |
|   Paused    boolean    |  success |   Sample:  False   |  |
|   ReadyAfterRun    boolean    |  success |   Sample:  False   |  |
|   RemainAfterExit    boolean    |  success |   Sample:  False   |  |
|   Required-By    list / elements=string    |  success |   Sample:  []   |  |
|   RestartExitStatusCode    integer    |  success |   Sample:  0   |  |
|   RestartExitStatusNumber    integer    |  success |   Sample:  0   |  |
|   RestartTimestamp    integer    |  success |   Sample:  4611686019935648081   |  |
|   RestartUTCTimestamp    integer    |  success |   Sample:  1508260140   |  |
|   RunExitStatusCode    integer    |  success |   Sample:  0   |  |
|   RunExitStatusNumber    integer    |  success |   Sample:  0   |  |
|   RunTimestamp    integer    |  success |   Sample:  4611686019935648081   |  |
|   RunUTCTimestamp    integer    |  success |   Sample:  1508260140   |  |
|   StartExitStatusCode    integer    |  success |   Sample:  1   |  |
|   StartExitStatusNumber    integer    |  success |   Sample:  0   |  |
|   StartTimestamp    integer    |  success |   Sample:  4611686019935648081   |  |
|   StartUTCTimestamp    integer    |  success |   Sample:  1508260140   |  |
|   StopExitStatusCode    integer    |  success |   Sample:  0   |  |
|   StopExitStatusNumber    integer    |  success |   Sample:  0   |  |
|   Stopped-By    list / elements=string    |  success |   Sample:  ['/etc/service-bundles/targets/shutdown']   |  |
|   StopTimestamp    integer    |  success |   Sample:  4611686019935648081   |  |
|   StopUTCTimestamp    integer    |  success |   Sample:  1508260140   |  |
|   Timestamp    integer    |  success |   Sample:  4611686019935648081   |  |
|   UTCTimestamp    integer    |  success |   Sample:  1508260140   |  |
|   Want    string    |  success |   Sample:  nothing   |  |
|   Wanted-By    list / elements=string    |  success |   Sample:  ['/etc/service-bundles/targets/server', '/etc/service-bundles/targets/sockets']   |  |
|   Wants    list / elements=string    |  success |   Sample:  ['/etc/service-bundles/targets/basic', '../sshdgenkeys']   |  |
|   user    boolean    |  success |   whether the user-level service manager is called   |  |
Authors
- Thomas Caravia (@tacatac)
 
    © 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
    https://docs.ansible.com/ansible/2.11/collections/community/general/nosh_module.html