Loading tasks/main.yml +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" templates/docker-extra.service.env.j2 0 → 100644 +3 −0 Original line number Diff line number Diff line {{ ansible_managed | comment }} {{ item.value.env }} templates/docker-extra.service.j2 +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 Loading @@ -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 Loading
tasks/main.yml +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"
templates/docker-extra.service.env.j2 0 → 100644 +3 −0 Original line number Diff line number Diff line {{ ansible_managed | comment }} {{ item.value.env }}
templates/docker-extra.service.j2 +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 Loading @@ -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