From 46113ccf86bd216fdae5aef388b4b57f61a8a88c Mon Sep 17 00:00:00 2001 From: Mathias Palmersheim Date: Sun, 22 Dec 2024 15:40:46 -0600 Subject: [PATCH 1/3] switched removing obsolete packages to variable #472 --- tasks/setup-RedHat.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/tasks/setup-RedHat.yml b/tasks/setup-RedHat.yml index d49316e..8a790f6 100644 --- a/tasks/setup-RedHat.yml +++ b/tasks/setup-RedHat.yml @@ -1,10 +1,7 @@ --- - name: Ensure old versions of Docker are not installed. package: - name: - - docker - - docker-common - - docker-engine + name: "{{ docker_obsolete_packages }}" state: absent - name: Add Docker GPG key. From 81200f047da926d7ae9ad1008bbd5990ff55b0d1 Mon Sep 17 00:00:00 2001 From: Mathias Palmersheim Date: Sun, 22 Dec 2024 16:15:19 -0600 Subject: [PATCH 2/3] #474 configure seperate package list for redhat and debian distros --- README.md | 23 ++++++++++++++++++++++- defaults/main.yml | 15 ++++++++++++++- tasks/setup-Debian.yml | 5 +++++ tasks/setup-RedHat.yml | 5 +++++ 4 files changed, 46 insertions(+), 2 deletions(-) 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 }}" From ae7fb7e9f65c07b73aa91d81e107ff26651f9891 Mon Sep 17 00:00:00 2001 From: Mathias Palmersheim Date: Sun, 22 Dec 2024 17:26:06 -0600 Subject: [PATCH 3/3] added failed when case for fedora workaround --- tasks/setup-RedHat.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tasks/setup-RedHat.yml b/tasks/setup-RedHat.yml index 9ec6ce9..0607e2f 100644 --- a/tasks/setup-RedHat.yml +++ b/tasks/setup-RedHat.yml @@ -8,6 +8,10 @@ package: name: "{{ docker_obsolete_packages }}" state: absent + register: obsolete_package_results + failed_when: + - '"Depsolve Error occurred" not in obsolete_package_results.msg' + - obsolete_package_results.rc == 0 - name: Add Docker GPG key. rpm_key: