| {%- from "linux/map.jinja" import system with context %} |
| {%- if system.enabled %} |
| |
| {%- for name, service in system.service.items() %} |
| |
| {%- if service.name is defined %} |
| {%- set service_name = service.name %} |
| {%- else %} |
| {%- set service_name = name %} |
| {%- endif %} |
| |
| {%- if service.status == 'running' %} |
| |
| {%- if grains.get('init', None) == 'systemd' %} |
| {%- if service.override is defined %} |
| {%- for order,rule in service.override.items() %} |
| {%- if rule.get('enabled', True) %} |
| {{ service_name }}_{{ order }}_override: |
| file.managed: |
| - name: /etc/systemd/system/{{ rule.target }}/{{ order }}-{{ rule.name }}.conf |
| - contents_pillar: linux:system:service:{{ name }}:override:{{ order}}:content |
| - makedirs: True |
| - user: root |
| - group: root |
| - watch_in: |
| - module: {{ service_name }}_systemd_reload |
| - service: {{ service_name }}_service |
| {%- endif %} |
| {%- endfor %} |
| |
| {{ service_name }}_systemd_reload: |
| module.wait: |
| - name: service.systemctl_reload |
| - watch_in: |
| - service: {{ service_name }}_service |
| |
| {{ service_name }}_service: |
| service.running: |
| - name: {{ service_name }} |
| - enable: {{ service.get('enabled', True) }} |
| {%- if grains.get('noservices') %} |
| - onlyif: /bin/false |
| {%- endif %} |
| {%- endif %} |
| {%- endif %} |
| |
| {%- elif service.status == 'dead' %} |
| |
| {{ service_name }}_service: |
| service.dead: |
| - name: {{ service_name }} |
| - enable: {{ service.get('enabled', False) }} |
| {%- if grains.get('noservices') %} |
| - onlyif: /bin/false |
| {%- endif %} |
| |
| {%- endif %} |
| |
| {%- endfor %} |
| |
| {%- endif %} |