diff --git a/defaults/main.yml b/defaults/main.yml index 4aa6bef..69c8de4 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -38,9 +38,7 @@ docker__distribution_release: '{{ ansible_local.core.distribution_release # upstream version of Docker. # Note that switching from upstream to default on one host, may not always # work. You may need to manually remove the upstream version and configuration. -docker__upstream: '{{ True - if (docker__distribution_release == "stretch") - else False }}' +docker__upstream: 'True' # ]]] # .. envvar:: docker__upstream_edition [[[ diff --git a/tasks/main.yml b/tasks/main.yml index f91efa3..e8e372f 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -59,8 +59,10 @@ - '/etc/systemd/system/docker.service' - '/lib/systemd/system/docker.service' - '/etc/default/docker' - - '/etc/docker/daemon.json' + # - '/etc/docker/daemon.json' - '/etc/systemd/system/docker.service.d/http-proxy.conf' + # - '/etc/systemd/system/docker.service.d/service.conf' + - '/etc/systemd/system/docker.service.d/socket.conf' when: (docker__register_other_version_removed|changed) - name: Install required packages @@ -139,25 +141,37 @@ tags: [ 'role::docker:config' ] when: (ansible_service_mgr != 'systemd' or docker__register_version.stdout | version_compare('1.10', '<')) -- name: Configure Docker systemd options +# - name: Configure Docker systemd options +# template: +# src: 'etc/docker/daemon.json.j2' +# dest: '/etc/docker/daemon.json' +# owner: 'root' +# group: 'root' +# mode: '0644' +# notify: [ 'Restart docker' ] +# tags: [ 'role::docker:config' ] +# when: (ansible_service_mgr == 'systemd' and docker__register_version.stdout | version_compare('1.10', '>=')) + +# - name: Install Debian systemd service unit +# template: +# src: 'etc/systemd/system/docker.service.d/service.conf.j2' +# dest: '/etc/systemd/system/docker.service.d/service.conf' +# owner: 'root' +# group: 'root' +# mode: '0644' +# register: docker__register_systemd_service +# notify: ['Restart docker' ] +# when: ansible_service_mgr == 'systemd' +# tags: [ 'role::docker:config' ] + +- name: Install Debian systemd socket unit template: - src: 'etc/docker/daemon.json.j2' - dest: '/etc/docker/daemon.json' + src: 'etc/systemd/system/docker.service.d/socket.conf.j2' + dest: '/etc/systemd/system/docker.service.d/socket.conf' owner: 'root' group: 'root' mode: '0644' - notify: [ 'Restart docker' ] - tags: [ 'role::docker:config' ] - when: (ansible_service_mgr == 'systemd' and docker__register_version.stdout | version_compare('1.10', '>=')) - -- name: Install Debian systemd service unit - template: - src: 'etc/systemd/system/docker.service.j2' - dest: '/etc/systemd/system/docker.service' - owner: 'root' - group: 'root' - mode: '0644' - register: docker__register_systemd_service + register: docker__register_systemd_socket notify: ['Restart docker' ] when: ansible_service_mgr == 'systemd' tags: [ 'role::docker:config' ] @@ -180,7 +194,9 @@ notify: [ 'Restart docker'] when: (ansible_service_mgr == 'systemd' and ((docker__register_systemd_service|d() and - docker__register_systemd_service|changed) or + docker__register_systemd_service|changed) or + (docker__register_systemd_socket|d() and + docker__register_systemd_socket|changed) or (docker__register_systemd_proxy_present|d() and docker__register_systemd_proxy_present|changed) or (docker__register_systemd_proxy_absent|d() and diff --git a/templates/etc/systemd/system/docker.service.d/service.conf.j2 b/templates/etc/systemd/system/docker.service.d/service.conf.j2 new file mode 100644 index 0000000..205831e --- /dev/null +++ b/templates/etc/systemd/system/docker.service.d/service.conf.j2 @@ -0,0 +1,11 @@ +# {{ ansible_managed }} + +[Service] +{% if docker__register_version.stdout | version_compare('1.12', '>=') %} +ExecStart=/usr/bin/dockerd {{ docker__options | join(" ") }} +{% elif docker__register_version.stdout | version_compare('1.10', '>=') %} +ExecStart=/usr/bin/docker daemon {{ docker__options | join(" ") }} +{% else %} +EnvironmentFile=-/etc/default/docker +ExecStart=/usr/bin/docker -d -H fd:// $DOCKER_OPTS +{% endif %} diff --git a/templates/etc/systemd/system/docker.service.d/socket.conf.j2 b/templates/etc/systemd/system/docker.service.d/socket.conf.j2 new file mode 100644 index 0000000..c7626bc --- /dev/null +++ b/templates/etc/systemd/system/docker.service.d/socket.conf.j2 @@ -0,0 +1,14 @@ +# {{ ansible_managed }} + +[Unit] +Description=Docker Socket for the API +PartOf=docker.service + +[Socket] +ListenStream=/var/run/docker.sock +SocketMode=0660 +SocketUser=root +SocketGroup=docker + +[Install] +WantedBy=sockets.target