mirror of
https://github.com/geerlingguy/ansible-role-docker.git
synced 2025-10-15 11:15:35 +02:00
65 lines
2.3 KiB
YAML
65 lines
2.3 KiB
YAML
---
|
|
- name: Ensure apt key is not present in trusted.gpg.d
|
|
ansible.builtin.file:
|
|
path: /etc/apt/trusted.gpg.d/docker.asc
|
|
state: absent
|
|
|
|
- name: Ensure old apt source list is not present in /etc/apt/sources.list.d
|
|
ansible.builtin.file:
|
|
path: "/etc/apt/sources.list.d/download_docker_com_linux_{{ docker_apt_ansible_distribution | lower }}.list"
|
|
state: absent
|
|
|
|
# See https://docs.docker.com/engine/install/debian/#uninstall-old-versions
|
|
- name: Ensure old versions of Docker are not installed.
|
|
ansible.builtin.package:
|
|
name: "{{ docker_obsolete_packages }}"
|
|
state: absent
|
|
|
|
- name: Ensure legacy repo file is not present.
|
|
block:
|
|
- name: Check for legacy docker.list
|
|
ansible.builtin.stat:
|
|
path: "/etc/apt/sources.list.d/docker.list"
|
|
register: legacy_docker_list
|
|
|
|
- name: Remove legacy docker.list if it does not reference the official Docker repo
|
|
ansible.builtin.shell: |
|
|
legacy_path="/etc/apt/sources.list.d/docker.list"
|
|
if [ -f "$legacy_path" ]; then
|
|
if grep -q "{{ docker_repo_url }}" "$legacy_path"; then
|
|
# file points to official repo; leave it
|
|
exit 0
|
|
else
|
|
rm -f "$legacy_path"
|
|
exit 0
|
|
fi
|
|
fi
|
|
when: legacy_docker_list.stat.exists
|
|
changed_when: "'removed' in ansible_facts.get('cmd', {}) or (legacy_docker_list.stat.exists and (lookup('file', '/etc/apt/sources.list.d/docker.list') | default('') | search(docker_repo_url) == False))"
|
|
args:
|
|
warn: false
|
|
register: remove_legacy_result
|
|
failed_when: false
|
|
|
|
- name: Ensure dependencies are installed.
|
|
ansible.builtin.apt:
|
|
name:
|
|
- apt-transport-https
|
|
- ca-certificates
|
|
- python3-debian
|
|
state: present
|
|
|
|
- name: Add or remove Docker repository.
|
|
ansible.builtin.deb822_repository:
|
|
name: "{{ docker_apt_filename }}"
|
|
types: deb
|
|
uris: "{{ docker_repo_url }}/{{ docker_apt_ansible_distribution | lower }}"
|
|
suites: "{{ ansible_facts.distribution_release }}"
|
|
components: "{{ docker_apt_release_channel }}"
|
|
signed_by: "{{ docker_apt_gpg_key }}"
|
|
state: "{{ 'present' if docker_add_repo | bool else 'absent' }}"
|
|
notify: apt update
|
|
|
|
- name: Ensure handlers are notified immediately to update the apt cache.
|
|
ansible.builtin.meta: flush_handlers
|