--- - name: Set Ubuntu codename for Linux Mint ansible.builtin.set_fact: docker_ubuntu_codename: > {{ 'jammy' if ansible_distribution_version is version('22', '>=') else 'focal' if ansible_distribution_version is version('21', '>=') else 'focal' if ansible_distribution_version is version('20', '>=') else 'bionic' }} - name: Check if Docker repository exists and is correct ansible.builtin.shell: | if [ -f /etc/apt/sources.list.d/docker.list ]; then if grep -q "deb \[arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg\] https://download.docker.com/linux/ubuntu" /etc/apt/sources.list.d/docker.list; then echo "correct_config" else echo "wrong_config" fi else echo "not_exists" fi register: docker_repo_check failed_when: false changed_when: false - name: Remove incorrect Docker repository ansible.builtin.file: path: /etc/apt/sources.list.d/docker.list state: absent become: true when: docker_repo_check.stdout == "wrong_config" - name: Add Docker repository for Linux Mint (using Ubuntu base) only if needed ansible.builtin.apt_repository: repo: "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu {{ docker_ubuntu_codename }} stable" state: present update_cache: false when: docker_repo_check.stdout in ["not_exists", "wrong_config"] - name: Update apt cache after adding Docker repository ansible.builtin.apt: update_cache: true become: true when: docker_repo_check.stdout in ["not_exists", "wrong_config"]