# preliminary: Debian ships with ansible 2.7 (buster) and at least 2.10 (bullseye). Well, in case # of ansible, Ubuntu is not bleeding edge, so let's get our stuff there. For now, while we don't have # a more sophisticated package distribution at hand. --- - hosts: "{{runtime_hosts|default('CHANGE_ME')}}" gather_facts: "no" vars: ans: 11: release: "impish" debname: "bullseye" 10: release: "bionic" debname: "buster" 9: release: "xenial" debname: "stretch" key: id: "93C4A3FD7BB9C367" tasks: - name: Gather facts subset setup: filter: "ansible_distribution*" - name: Acquire Debian hosts debug: msg: "System is {{ansible_distribution}} {{ansible_distribution_version}}, checking in." when: - ansible_distribution == "Debian" - ansible_distribution_version == "11" or ansible_distribution_version == "10" or ansible_distribution_version == "9" changed_when: true notify: - "deb all" handlers: - name: Create ansible repository file template: src: "./debian-ansible-2.j2" dest: "/etc/apt/sources.list.d/ansible-ubuntu.list" owner: root group: root mode: "0644" become: true listen: - "deb all" - name: Import repository key apt_key: id: "{{ans.key.id}}" keyserver: keyserver.ubuntu.com state: "present" become: true listen: "deb all" - name: Update apt cache apt: update_cache: "yes" become: true listen: "deb all" - name: Remove ansible # just upgrading stuff ended up in a broken installation due to a file being locked mutually between old # and new package on debian 11. apt -f install fixed it without flaws, however - do we want that here? no. apt: name: "ansible" state: "absent" become: true listen: "deb all" when: ansible_distribution_version == "11" - name: Install ansible (again) apt: name: "ansible" state: "latest" install_recommends: "yes" become: true listen: "deb all"