ansible-role-systemd_service/tasks/systemd_load.yml
Dmitriy Rabotyagov 1f7091a11c Add ability to create templated services
This functionality is pretty neat and used widely if you need to pass
specific argument to the unit service, but rest of the parameters can
be left intact.

Change-Id: I6eb80ac0f9f0257402697a255518bb2c66d0dfd5
2022-01-14 10:37:39 +00:00

40 lines
1.7 KiB
YAML

---
# Copyright 2021, City Network International AB.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# NOTE(noonedeadpunk): If we don't have template_arguments set, we just iterate over list with
# empty string as element. This won't have any effect on the results, but
# we reduce code duplication
- name: "Load service {{ service.service_name | replace(' ', '_') }}"
systemd:
name: "{{ service.service_name | replace(' ', '_') }}{{ template_argument }}.service"
enabled: "{{ service.enabled | default(systemd_service_enabled) }}"
state: "{{ (service.timer is defined) | ternary(omit, (service.state | default(omit))) }}"
when:
- service.load | default(True)
loop: "{{ service.template_arguments | default(['']) }}"
loop_control:
loop_var: template_argument
- name: "Load timer {{ service.service_name | replace(' ', '_') }}"
systemd:
name: "{{ service.service_name | replace(' ', '_') }}{{ template_argument }}.timer"
enabled: "{{ service.enabled | default(systemd_service_enabled) }}"
state: "{{ service.timer.state | default(omit) }}"
when:
- service.timer is defined
with_items: "{{ service.template_arguments | default(['']) }}"
loop_control:
loop_var: template_argument