main.yml 1.1 KB

1234567891011121314151617181920212223242526272829
  1. - name: 'configure systemd unit {{ systemd_unit_name }}'
  2. copy:
  3. dest: '/etc/systemd/system/{{ systemd_unit_name }}'
  4. content: |
  5. # ansible managed
  6. {{ systemd_unit_config }}
  7. mode: a=r
  8. register: _config_file
  9. - name: 'fetch state of systemd unit {{ systemd_unit_name }}'
  10. systemd:
  11. name: '{{ systemd_unit_name }}'
  12. register: _unit
  13. when: _config_file.changed
  14. - name: 'set state of systemd unit {{ systemd_unit_name }}'
  15. systemd:
  16. daemon_reload: '{{ _config_file.changed }}'
  17. name: '{{ systemd_unit_name }}'
  18. enabled: '{{ systemd_unit_enabled | default(omit) }}'
  19. state: >-
  20. {{ "restarted" if (systemd_unit_state is not defined
  21. or systemd_unit_state != "stopped")
  22. and _config_file.changed
  23. and _unit.status.ActiveState == "active"
  24. else systemd_unit_state | default(omit) }}
  25. when: >-
  26. _config_file.changed
  27. or systemd_unit_enabled is defined
  28. or systemd_unit_state is defined
  29. or (_config_file.changed and systemd_unit.status.ActiveState == "active")