diff --git a/README.md b/README.md index 479ae62..28d9efb 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,12 @@ You can control whether the package is installed, uninstalled, or at the latest ```yaml docker_obsolete_packages: +``` + +A list of packages to be uninstalled on all platforms prior to running this role. By default this will `docker_obsolete_packages_debian` on debian based systems and `docker_obsolete_packages_redhat` on redhat systems. + +```yaml +docker_obsolete_packages_debian: - docker - docker.io - docker-engine @@ -39,8 +45,23 @@ docker_obsolete_packages: - containerd - runc ``` +A list of packages to be uninstalled on Debian based systems prior to running this role. See [Docker's installation instructions](https://docs.docker.com/engine/install/debian/#uninstall-old-versions) for an up-to-date list of old packages that should be removed. -A list of packages to be uninstalled prior to running this role. See [Docker's installation instructions](https://docs.docker.com/engine/install/debian/#uninstall-old-versions) for an up-to-date list of old packages that should be removed. +```yaml +docker_obsolete_packages_redhat: + - docker + - docker-client + - docker-client-latest + - docker-common + - docker-latest + - docker-latest-logrotate + - docker-logrotate + - docker-engine + - podman + - runc +``` + +A list of packaged to be uninstalled on RedHat based systems prior to running this role. See [Docker's installation instructions](https://docs.docker.com/engine/install/rhel/#uninstall-old-versions) for an up-to-date list of old packages that should be removed. ```yaml docker_service_manage: true diff --git a/defaults/main.yml b/defaults/main.yml index 4126d86..3c8b646 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -8,7 +8,9 @@ docker_packages: - "containerd.io" - docker-buildx-plugin docker_packages_state: present -docker_obsolete_packages: + +# obsolete packages are different on Redhat and Debian and are set to docker_obsolete_packages in their respective tasks files +docker_obsolete_packages_debian: - docker - docker.io - docker-engine @@ -16,6 +18,17 @@ docker_obsolete_packages: - podman-docker - containerd - runc +docker_obsolete_packages_redhat: + - docker + - docker-client + - docker-client-latest + - docker-common + - docker-latest + - docker-latest-logrotate + - docker-logrotate + - docker-engine + - podman + - runc # Service options. docker_service_manage: true diff --git a/tasks/setup-Debian.yml b/tasks/setup-Debian.yml index a1c7d3e..b56e40b 100644 --- a/tasks/setup-Debian.yml +++ b/tasks/setup-Debian.yml @@ -17,6 +17,11 @@ update_cache: true when: docker_add_repo | bool +- name: Set obselete packages if not already defined + set_fact: + docker_obsolete_packages: "{{ docker_obsolete_packages_debian }}" + when: docker_obsolete_packages is not defined + - # See https://docs.docker.com/engine/install/debian/#uninstall-old-versions name: Ensure old versions of Docker are not installed. package: diff --git a/tasks/setup-RedHat.yml b/tasks/setup-RedHat.yml index 8a790f6..9ec6ce9 100644 --- a/tasks/setup-RedHat.yml +++ b/tasks/setup-RedHat.yml @@ -1,4 +1,9 @@ --- +- name: Set obselete packages if not already defined + set_fact: + docker_obsolete_packages: "{{ docker_obsolete_packages_redhat }}" + when: docker_obsolete_packages is not defined + - name: Ensure old versions of Docker are not installed. package: name: "{{ docker_obsolete_packages }}"