Loading tasks/main.yml +13 −4 Original line number Diff line number Diff line --- - name: "Create Docker extra service" - name: Fail on spaces in service names with_dict: "{{ docker_extra_service }}" ansible.builtin.assert: that: - "' ' not in item.key" no_log: true - name: Create Docker extra service when: - item.value.parameters is defined - item.value.parameters != None Loading @@ -13,8 +20,9 @@ group: root mode: "0644" register: docker_extra_service_parameters no_log: true - name: "Create Docker extra service env" - name: Create Docker extra service env when: - item.value.env is defined - item.value.env != None Loading @@ -27,11 +35,12 @@ group: root mode: "0644" register: docker_extra_service_env no_log: true - name: "(Re)start Docker extra service" - 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 state: reloaded enabled: true daemon_reload: true name: "docker-extra_{{ item }}.service" templates/docker-extra.service.j2 +6 −3 Original line number Diff line number Diff line Loading @@ -7,11 +7,14 @@ Requires=docker.service [Service] Type=oneshot Environment="TERM=dumb" RemainAfterExit=true 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 }}" EnvironmentFile=/etc/systemd/system/docker-extra_{{ item.key }}.service.env Environment="TERM=dumb" 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 }}' ExecReload=/usr/bin/env sh -c 'docker rm -f {{ 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 +13 −4 Original line number Diff line number Diff line --- - name: "Create Docker extra service" - name: Fail on spaces in service names with_dict: "{{ docker_extra_service }}" ansible.builtin.assert: that: - "' ' not in item.key" no_log: true - name: Create Docker extra service when: - item.value.parameters is defined - item.value.parameters != None Loading @@ -13,8 +20,9 @@ group: root mode: "0644" register: docker_extra_service_parameters no_log: true - name: "Create Docker extra service env" - name: Create Docker extra service env when: - item.value.env is defined - item.value.env != None Loading @@ -27,11 +35,12 @@ group: root mode: "0644" register: docker_extra_service_env no_log: true - name: "(Re)start Docker extra service" - 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 state: reloaded enabled: true daemon_reload: true name: "docker-extra_{{ item }}.service"
templates/docker-extra.service.j2 +6 −3 Original line number Diff line number Diff line Loading @@ -7,11 +7,14 @@ Requires=docker.service [Service] Type=oneshot Environment="TERM=dumb" RemainAfterExit=true 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 }}" EnvironmentFile=/etc/systemd/system/docker-extra_{{ item.key }}.service.env Environment="TERM=dumb" 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 }}' ExecReload=/usr/bin/env sh -c 'docker rm -f {{ item.key }} && docker run -d --name {{ item.key }} {{ item.value.parameters }}' ExecStop=/usr/bin/docker stop {{ item.key }} [Install] WantedBy=multi-user.target