Skip to content

Commit b40ecc1

Browse files
committed
fix: only remove legacy docker.list if it doesn't reference official Docker repo (idempotence)
1 parent 9a97e68 commit b40ecc1

File tree

1 file changed

+24
-3
lines changed

1 file changed

+24
-3
lines changed

tasks/setup-Debian.yml

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,30 @@
1616
state: absent
1717

1818
- name: Ensure legacy repo file is not present.
19-
ansible.builtin.file:
20-
path: "/etc/apt/sources.list.d/docker.list"
21-
state: absent
19+
block:
20+
- name: Check for legacy docker.list
21+
ansible.builtin.stat:
22+
path: "/etc/apt/sources.list.d/docker.list"
23+
register: legacy_docker_list
24+
25+
- name: Remove legacy docker.list if it does not reference the official Docker repo
26+
ansible.builtin.shell: |
27+
legacy_path="/etc/apt/sources.list.d/docker.list"
28+
if [ -f "$legacy_path" ]; then
29+
if grep -q "{{ docker_repo_url }}" "$legacy_path"; then
30+
# file points to official repo; leave it
31+
exit 0
32+
else
33+
rm -f "$legacy_path"
34+
exit 0
35+
fi
36+
fi
37+
when: legacy_docker_list.stat.exists
38+
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))"
39+
args:
40+
warn: false
41+
register: remove_legacy_result
42+
failed_when: false
2243

2344
- name: Ensure dependencies are installed.
2445
ansible.builtin.apt:

0 commit comments

Comments
 (0)