Fix package downgrading for non-{RedHat,Debian} systems

Not all package install handlers implement the `allow_downgrade` option.
For example, using Ansible >= 2.12 on Arch Linux would croak like:

    Unsupported parameters for (ansible.legacy.pacman) module: allow_downgrade.
This commit is contained in:
Andreas Motl 2022-05-16 18:21:33 +02:00
parent 5b8e39b38e
commit 887eee43c7

View File

@ -5,22 +5,22 @@
- include_tasks: setup-Debian.yml - include_tasks: setup-Debian.yml
when: ansible_os_family == 'Debian' when: ansible_os_family == 'Debian'
- name: Install Docker (Ansible <2.12). - name: Install Docker.
package: package:
name: "{{ docker_package }}" name: "{{ docker_package }}"
state: "{{ docker_package_state }}" state: "{{ docker_package_state }}"
notify: restart docker notify: restart docker
ignore_errors: "{{ ansible_check_mode }}" ignore_errors: "{{ ansible_check_mode }}"
when: "ansible_version.full is version_compare('2.12', '<')" when: "ansible_version.full is version_compare('2.12', '<') or ansible_os_family not in ['RedHat', 'Debian']"
- name: Install Docker (Ansible >=2.12). - name: Install Docker (with downgrade option).
package: package:
name: "{{ docker_package }}" name: "{{ docker_package }}"
state: "{{ docker_package_state }}" state: "{{ docker_package_state }}"
allow_downgrade: true allow_downgrade: true
notify: restart docker notify: restart docker
ignore_errors: "{{ ansible_check_mode }}" ignore_errors: "{{ ansible_check_mode }}"
when: "ansible_version.full is version_compare('2.12', '>=')" when: "ansible_version.full is version_compare('2.12', '>=') and ansible_os_family in ['RedHat', 'Debian']"
- name: Ensure /etc/docker/ directory exists. - name: Ensure /etc/docker/ directory exists.
file: file: