--- - name: docker_setup | Docker configuration and service management when: docker_install tags: [docker] block: - name: docker_setup | Install the Docker default options template: src=docker-default.j2 dest={{ docker_defaults_file }} owner=root group=root mode=0644 when: ansible_service_mgr != 'systemd' notify: Restart docker tags: ['docker', 'docker_conf'] - name: docker_setup | Install the Docker daemon config template: src=daemon.json.j2 dest=/etc/docker/daemon.json owner=root group=root mode=0644 notify: Restart docker tags: ['docker', 'docker_conf'] - name: docker_setup | Create the docker service systemd directory file: dest=/etc/systemd/system/docker.service.d state=directory mode=0755 when: ansible_service_mgr == 'systemd' tags: ['docker', 'docker_systemd', 'docker_conf'] - name: docker_setup | Install the Docker additional systemd unit template: src: docker-systemd-override.conf.j2 dest: /etc/systemd/system/docker.service.d/override.conf owner: root group: root mode: "0644" when: ansible_service_mgr == 'systemd' notify: Restart docker register: reload_systemd tags: ['docker', 'docker_systemd', 'docker_conf'] - name: docker_setup | systemd reload command: systemctl daemon-reload when: reload_systemd is defined and reload_systemd is changed tags: ['docker', 'docker_systemd', 'docker_conf'] - name: docker_setup | Ensure that the service is started and enabled service: name=docker state=started enabled=yes - name: docker_setup | Docker configuration and service management when: docker_install tags: [docker, containerd, containerd_conf] block: - name: docker_setup | Set the containerd data directory community.general.ini_file: path: /etc/containerd/config.toml option: root value: '"{{ docker_containerd_data_dir }}"' owner: root group: root mode: "0644" state: present notify: - Restart containerd - Restart docker - name: docker_setup | Set the containerd state directory community.general.ini_file: path: /etc/containerd/config.toml option: state value: '"{{ docker_containerd_state_dir }}"' owner: root group: root mode: "0644" state: present notify: - Restart containerd - Restart docker - name: Cron job that prunes all the docker system block: - name: Install a script that prunes the entire docker system copy: src: docker-system-prune-all.sh dest: /usr/local/sbin/docker-system-prune-all owner: root group: root mode: 0744 - name: Install a cron job that prunes the entire docker system cron: name: Prune docker system cron_file: docker-system-prune-all minute: "0" hour: "1,13" user: root state: present job: "/usr/local/sbin/docker-system-prune-all" when: docker_system_prune_all - name: Disable the cron job that prunes the docker system cron: name: Prune docker system cron_file: docker-system-prune-all minute: "0" hour: "1,13" user: root state: absent job: "/usr/local/sbin/docker-system-prune-all" when: not docker_system_prune_all when: docker_install tags: [docker, docker_system_prune_all] - name: docker_setup | Cron job that restart docker daemon daily block: - name: docker_setup | Install a script that restart the docker daemon copy: src: docker-restart-daemon.sh dest: /usr/local/sbin/docker-restart-daemon owner: root group: root mode: "0744" - name: docker_setup | Install a cron job that restart the docker daemon cron: name: Restart docker daemon cron_file: docker-restart-daemon minute: "0" hour: "7" user: root state: present job: "/usr/local/sbin/docker-restart-daemon" when: docker_restart_daemon_cronjob - name: docker_setup | Disable the cron job that restart the docker daemon cron: name: Restart docker daemon cron_file: docker-prune-images minute: "0" hour: "7" user: root state: absent job: "/usr/local/sbin/docker-restart-daemon" when: not docker_restart_daemon_cronjob when: docker_install tags: [docker, docker_restart_daemon_cronjob]