ansible-role-docker/tasks/docker_setup.yml

140 lines
4.5 KiB
YAML

---
- 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
special_time: daily
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
special_time: daily
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]