diff --git a/ansible/roles/docker/handlers/main.yml b/ansible/roles/docker/handlers/main.yml new file mode 100644 index 000000000..de4135375 --- /dev/null +++ b/ansible/roles/docker/handlers/main.yml @@ -0,0 +1,6 @@ +--- +- name: restart docker service + service: + name: docker + state: restarted + become: True diff --git a/ansible/roles/docker/tasks/config.yml b/ansible/roles/docker/tasks/config.yml new file mode 100644 index 000000000..8284ccfc0 --- /dev/null +++ b/ansible/roles/docker/tasks/config.yml @@ -0,0 +1,8 @@ +--- +- name: Ensure the docker daemon configuration file exists + template: + src: daemon.json.j2 + dest: /etc/docker/daemon.json + become: True + notify: restart docker service + diff --git a/ansible/roles/docker/tasks/main.yml b/ansible/roles/docker/tasks/main.yml index a0b7bf66e..d3d578b74 100644 --- a/ansible/roles/docker/tasks/main.yml +++ b/ansible/roles/docker/tasks/main.yml @@ -24,3 +24,16 @@ - include: storage.yml when: "{{ 'Data loop file' in docker_info.stdout }}" + +- name: Read Docker daemon config file + slurp: + src: /etc/docker/daemon.json + register: docker_daemon_conf + become: True + +- name: Parse Docker daemon config JSON + set_fact: + docker_daemon_json: "{{ docker_daemon_conf['content'] | b64decode | from_json }}" + +- include: config.yml + when: "{{ docker_daemon_json['mtu'] }} != 1450 or {{ docker_daemon_json['storage-driver'] }} != 'devicemapper'" diff --git a/ansible/roles/docker/tasks/storage.yml b/ansible/roles/docker/tasks/storage.yml index 09fda5fc4..030ac05f5 100644 --- a/ansible/roles/docker/tasks/storage.yml +++ b/ansible/roles/docker/tasks/storage.yml @@ -4,6 +4,7 @@ name: docker state: stopped become: True + notify: restart docker service - name: Ensure loopback storage state is absent file: @@ -47,15 +48,3 @@ lvchange --metadataprofile docker-thinpool {{ docker_storage_volume_group }}/{{ docker_storage_volume_thinpool }} become: True - -- name: Ensure the docker daemon configuration file exists - template: - src: daemon.json.j2 - dest: /etc/docker/daemon.json - become: True - -- name: Ensure the docker daemon is running - service: - name: docker - state: started - become: True diff --git a/ansible/roles/docker/templates/daemon.json.j2 b/ansible/roles/docker/templates/daemon.json.j2 index a02fc1a79..0da43abc7 100644 --- a/ansible/roles/docker/templates/daemon.json.j2 +++ b/ansible/roles/docker/templates/daemon.json.j2 @@ -1,8 +1,9 @@ { "storage-driver": "devicemapper", - "storage-opts": [ - "dm.thinpooldev=/dev/mapper/{{ docker_storage_volume_group | replace('-', '--') }}-{{ docker_storage_volume_thinpool | replace('-', '--') }}", - "dm.use_deferred_removal=true", - "dm.use_deferred_deletion=true" - ] + "mtu": 1450, + "storage-opts": [ + "dm.thinpooldev=/dev/mapper/{{ docker_storage_volume_group | replace('-', '--') }}-{{ docker_storage_volume_thinpool | replace('-', '--') }}", + "dm.use_deferred_removal=true", + "dm.use_deferred_deletion=true" + ] }