Example 2: Manual management of services

In the list lp_service, it is possible to set more parameters compared to the list lp_service_auto. What parameters can be used depends on the module that will be used

lp_service_module: auto
lp_service:
  - enabled: true
    name: smartmontools
    state: stopped
  - enabled: true
    name: udev
    state: stopped
    use: service

By default the variable lp_service_module is set to auto. In this case, the OS native service manager ansible_service_mgr is used.

Create a playbook

shell> cat lp.yml
- hosts: test_01
  become: true
  roles:
    - vbotka.linux_postinstal

Create variables

Create the file host_vars/test_01/lp-service.yml and declare the list of services lp_service that shall be managed by this task

shell> cat host_vars/test_01/lp-service.yml
lp_service:
  - enabled: true
    name: smartmontools
    state: started
    use: auto
  - enabled: true
    name: udev
    state: started
    use: service

Show variables

shell> ansible-playbook lp.yml -t lp_service_debug -e lp_service_debug=True

  ...

TASK [vbotka.linux_postinstall : service: Debug] ***********************************************
ok: [test_01] => 
  msg: |-
    ansible_os_family: Debian
    ansible_service_mgr: systemd
    lp_service_sanity: False
  
    lp_service_module: auto
    lp_service_module_valid: ['auto', 'service', 'systemd', 'sysvinit']
    lp_service:
      - enabled: true
        name: smartmontools
        state: started
        use: auto
      - enabled: true
        name: udev
        state: started
        use: service
  
    lp_service_auto:
      - smart
      - udev

Manage the services and show the results

shell> ansible-playbook lp.yml -t lp_service_manual -e lp_service_debug=true

  ...

TASK [vbotka.linux_postinstall : service: Manual management set module auto] *******************
ok: [test_01]

TASK [vbotka.linux_postinstall : service: Include systemd] *************************************
included: /export/home/admin/.ansible/roles/vbotka.linux_postinstall/tasks/fn/service-systemd.yml for test_01

TASK [vbotka.linux_postinstall : service:systemd: enable/disable] ******************************
ok: [test_01] => (item=smartmontools enabled: True)
ok: [test_01] => (item=udev enabled: True)

TASK [vbotka.linux_postinstall : service:systemd: Debug] ***************************************
included: /export/home/admin/.ansible/roles/vbotka.linux_postinstall/tasks/fn/service-debug.yml for test_01

TASK [vbotka.linux_postinstall : service: Debug management full results] ***********************
skipping: [test_01]

TASK [vbotka.linux_postinstall : service: Debug management selected results] *******************
ok: [test_01] => 
  msg: |-
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    changed: False
    item:
      enabled: true
      name: smartmontools
      use: auto
  
    name: smartmontools
    enabled: True
    state: UNDEFINED
    msg: UNDEFINED
    invocation:
      daemon_reexec: false
      daemon_reload: false
      enabled: true
      force: null
      masked: null
      name: smartmontools
      no_block: false
      scope: system
      state: null
  
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    changed: False
    item:
      enabled: true
      name: udev
      use: service
  
    name: udev
    enabled: True
    state: UNDEFINED
    msg: UNDEFINED
    invocation:
      daemon_reexec: false
      daemon_reload: false
      enabled: true
      force: null
      masked: null
      name: udev
      no_block: false
      scope: system
      state: null

TASK [vbotka.linux_postinstall : service:systemd: Flush handlers] ******************************

TASK [vbotka.linux_postinstall : service:systemd: mask/unmask] *********************************
skipping: [test_01]

TASK [vbotka.linux_postinstall : service:systemd: Debug] ***************************************
skipping: [test_01]

TASK [vbotka.linux_postinstall : service:systemd: Flush handlers] ******************************
skipping: [test_01]

TASK [vbotka.linux_postinstall : service:systemd: all] *****************************************
ok: [test_01] => (item=smartmontools enabled: True masked: auto state: started)
ok: [test_01] => (item=udev enabled: True masked: service state: started)

TASK [vbotka.linux_postinstall : service:systemd: Debug] ***************************************
included: /export/home/admin/.ansible/roles/vbotka.linux_postinstall/tasks/fn/service-debug.yml for test_01

TASK [vbotka.linux_postinstall : service: Debug management full results] ***********************
skipping: [test_01]

TASK [vbotka.linux_postinstall : service: Debug management selected results] *******************
ok: [test_01] => 
  msg: |-
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    changed: False
    item:
      enabled: true
      name: smartmontools
      state: started
      use: auto
  
    name: smartmontools
    enabled: True
    state: started
    msg: UNDEFINED
    invocation:
      daemon_reexec: false
      daemon_reload: false
      enabled: true
      force: null
      masked: null
      name: smartmontools
      no_block: false
      scope: system
      state: started
  
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    changed: False
    item:
      enabled: true
      name: udev
      state: started
      use: service
  
    name: udev
    enabled: True
    state: started
    msg: UNDEFINED
    invocation:
      daemon_reexec: false
      daemon_reload: false
      enabled: true
      force: null
      masked: null
      name: udev
      no_block: false
      scope: system
      state: started

TASK [vbotka.linux_postinstall : service: Flush handlers] **************************************