59 lines
1.4 KiB
YAML
59 lines
1.4 KiB
YAML
- name: Get IPv6 subnet for Docker
|
|
set_fact:
|
|
docker_ipv6_subnet: "{{ \
|
|
ansible_default_ipv6.address \
|
|
| ansible.utils.ipsubnet(64) \
|
|
| ansible.utils.ipsubnet(72, docker_ipv6_index) \
|
|
}}"
|
|
|
|
- debug:
|
|
var: docker_ipv6_subnet
|
|
|
|
- name: Configure Docker daemon
|
|
become: yes
|
|
template:
|
|
src: "daemon.json.j2"
|
|
dest: "/etc/docker/daemon.json"
|
|
owner: root
|
|
group: root
|
|
mode: "0644"
|
|
register: docker_daemon_config
|
|
|
|
- name: Remove docker0 from firewalld trusted zone
|
|
become: yes
|
|
firewalld:
|
|
zone: trusted
|
|
interface: docker0
|
|
permanent: yes
|
|
immediate: yes
|
|
state: disabled
|
|
register: docker0_firewalld
|
|
|
|
- name: Get list of running Docker containers
|
|
docker_host_info:
|
|
containers: yes
|
|
register: docker_container_list
|
|
when: clean_desired is true
|
|
|
|
- name: Stop all running Docker containers
|
|
docker_container:
|
|
name: "{{ item }}"
|
|
state: stopped
|
|
loop: "{{ docker_container_list.containers | map(attribute='Id') | list }}"
|
|
async: 300
|
|
poll: 0
|
|
when: clean_desired is true and docker_container_list.containers | length > 0
|
|
|
|
- name: Prune all Docker containers and networks
|
|
docker_prune:
|
|
containers: yes
|
|
networks: yes
|
|
when: clean_desired is true
|
|
|
|
- name: Restart Docker daemon
|
|
become: yes
|
|
service:
|
|
name: docker
|
|
state: restarted
|
|
when: docker_daemon_config.changed or docker0_firewalld.changed
|