Example 1: Automatic management of services
Services in the list lp_service_auto will be automatically set according the below variables
lp_<service_name> ........... included if true (default=false)
lp_<service_name>_service ... Os specific name (see defaults and vars)
lp_<service_name>_enable .... enabled if true (default=false)
lp_<service_name>_state ..... started if true (default=<fn(enabled)>)
lp_<service_name>_module .... module used (default=auto)
For example, given the below variables, the service udev will be set enabled and started by module service
lp_udev: true
lp_udev_service: udev
lp_udev_enable: true
lp_udev_module: service
Create playbook
shell> cat lp.yml
- hosts: test_01
become: true
roles:
- vbotka.linux_postinstall
Create variables
Create the file host_vars/test_01/lp-service.yml and create the list of services lp_service_auto that shall be managed by this task
shell> cat host_vars/test_01/lp-service.yml
lp_service_auto:
- smart
- udev
Hint
Use the variable lp_service to set other parameters.
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_auto -e lp_service_debug=true
...
TASK [vbotka.linux_postinstall : service: Automatic management of listed services] *****************
ok: [test_01] => (item=smartmontools enabled: True use: auto)
ok: [test_01] => (item=udev enabled: True use: service)
TASK [vbotka.linux_postinstall : service: 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:
smart
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:
udev
name: udev
enabled: True
state: started
msg: UNDEFINED
invocation:
arguments: ''
enabled: true
name: udev
pattern: null
runlevel: default
sleep: null
state: started
TASK [vbotka.linux_postinstall : service: Flush handlers] **************************************