1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- - name: 'configure systemd unit {{ systemd_unit_name }}'
- copy:
- dest: '/etc/systemd/system/{{ systemd_unit_name }}'
- content: |
- # ansible managed
- {{ systemd_unit_config }}
- mode: a=r
- register: _config_file
- when: systemd_unit_config is defined
- - name: 'configure systemd unit {{ systemd_unit_name }} via drop-in config'
- copy:
- # > Along with a unit file foo.service, a "drop-in" directory foo.service.d/ may
- # > exist. All files with the suffix ".conf" from this directory will be parsed
- # > after the unit file itself is parsed.
- dest: '/etc/systemd/system/{{ systemd_unit_name }}.d/override.conf'
- content: |
- # ansible managed
- {{ systemd_unit_dropin_config }}
- mode: a=r
- register: _dropin_config_file
- when: systemd_unit_dropin_config is defined
- - name: 'fetch state of systemd unit {{ systemd_unit_name }}'
- systemd:
- name: '{{ systemd_unit_name }}'
- register: _unit
- when: _config_file.changed or _dropin_config_file.changed or systemd_unit_restart_if_active
- - name: 'set state of systemd unit {{ systemd_unit_name }}'
- systemd:
- daemon_reload: '{{ _config_file.changed or _dropin_config_file.changed }}'
- name: '{{ systemd_unit_name }}'
- enabled: '{{ systemd_unit_enabled | default(omit) }}'
- # > `started'/`stopped' are idempotent actions [...]
- # > `restarted' will always bounce the service
- state: >-
- {{ "restarted" if (systemd_unit_state is not defined
- or systemd_unit_state != "stopped")
- and (_config_file.changed
- or _dropin_config_file.changed
- or systemd_unit_restart_if_active)
- and 'ActiveState' in _unit.status
- and _unit.status.ActiveState == "active"
- else systemd_unit_state | default(omit) }}
- when: >-
- _config_file.changed
- or _dropin_config_file.changed
- or systemd_unit_enabled is defined
- or systemd_unit_state is defined
- or (systemd_unit_restart_if_active
- and 'ActiveState' in _unit.status
- and _unit.status.ActiveState == "active")
|