Unverified Commit d50c1132 authored by Dmitriy Safronov's avatar Dmitriy Safronov Committed by GitHub
Browse files

multiple items (#4)

parent 3a1f10e3
Loading
Loading
Loading
Loading
+25 −6
Original line number Diff line number Diff line
---

- name: "Create Docker extra service : {{ docker_extra_name | mandatory }}"
- name: "Create Docker extra service"
  when:
    - item.value.parameters is defined
    - item.value.parameters != None
    - item.value.parameters | length > 0
  with_dict: "{{ docker_extra_service }}"
  ansible.builtin.template:
    src: docker-extra.service.j2
    dest: "/etc/systemd/system/docker-extra_{{ docker_extra_name | mandatory }}.service"
    dest: "/etc/systemd/system/docker-extra_{{ item.key }}.service"
    owner: root
    group: root
    mode: "0644"
  register: docker_extra_service
  register: docker_extra_service_parameters

- name: "(Re)start Docker extra service : {{ docker_extra_name | mandatory }}"
  when: docker_extra_service.changed
- name: "Create Docker extra service env"
  when:
    - item.value.env is defined
    - item.value.env != None
    - item.value.env | length > 0
  with_dict: "{{ docker_extra_service }}"
  ansible.builtin.template:
    src: docker-extra.service.env.j2
    dest: "/etc/systemd/system/docker-extra_{{ item.key }}.service.env"
    owner: root
    group: root
    mode: "0644"
  register: docker_extra_service_env

- name: "(Re)start Docker extra service"
  with_items: "{{ (docker_extra_service_parameters.results + docker_extra_service_env.results) | selectattr('changed', 'equalto', true) | map(attribute='item.key') | list | unique }}"
  ansible.builtin.systemd:
    state: restarted
    enabled: true
    daemon_reload: true
    name: "docker-extra_{{ docker_extra_name | mandatory }}.service"
    name: "docker-extra_{{ item }}.service"
+3 −0
Original line number Diff line number Diff line
{{ ansible_managed | comment }}

{{ item.value.env }}
+5 −3
Original line number Diff line number Diff line
{{ ansible_managed | comment }}

[Unit]
Description=Docker extra: {{ docker_extra_name | mandatory }}
Description=Docker extra: {{ item.key }}
After=docker.service
Requires=docker.service

@@ -8,8 +10,8 @@ Type=oneshot
Environment="TERM=dumb"
RemainAfterExit=true

ExecStart=/usr/bin/env sh -c 'docker ps --format "{% raw %}{{.Names}}{% endraw %}" -a | grep -q -x "{{ docker_extra_name | mandatory }}" && docker start "{{ docker_extra_name | mandatory }}" || docker run -d --name "{{ docker_extra_name | mandatory }}" {{ docker_extra_parameters | mandatory }}'
ExecStop=/usr/bin/docker stop "{{ docker_extra_name | mandatory }}"
ExecStart=/usr/bin/env sh -c 'docker ps --format "{% raw %}{{.Names}}{% endraw %}" -a | grep -q -x "{{ item.key }}" && docker start "{{ item.key }}" || docker run -d --name "{{ item.key }}" {{ item.value.parameters }}'
ExecStop=/usr/bin/docker stop "{{ item.key }}"

[Install]
WantedBy=multi-user.target