123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- - 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: 'create parent folder for drop-in config files of systemd unit {{ systemd_unit_name }}'
- file:
- path: '/etc/systemd/system/{{ systemd_unit_name }}.d'
- state: directory
- mode: u=rwx,go=rx
- register: _dropin_config_dir
- when: systemd_unit_dropin_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: '{{ _dropin_config_dir.path }}/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")
|