- name: Read Docker config block: - name: Read daemon.json become: true ansible.builtin.slurp: src: /etc/docker/daemon.json register: docker_current_config - name: Parse daemon.json ansible.builtin.set_fact: docker_current_config: '{{ docker_current_config.content | b64decode | from_json }}' rescue: - name: daemon.json is missing ansible.builtin.set_fact: docker_current_config: {} - name: Modify Docker config become: true block: - name: Create /etc/docker ansible.builtin.file: path: /etc/docker state: directory owner: root group: root mode: '755' - name: Write daemon.json ansible.builtin.copy: dest: /etc/docker/daemon.json content: '{{ docker_current_config | combine({"log-driver": docker_logging_driver}) | to_nice_json }}' owner: root group: root mode: '644' register: docker_config - name: Restart Docker if necessary become: true when: docker_config.changed block: - name: Collect service facts ansible.builtin.service_facts: - name: Restart Docker service when: | 'docker' in ansible_facts.services and ansible_facts.services.docker.state == 'running' ansible.builtin.systemd_service: name: docker state: restarted