From c030c4595496767d5d3224be051577f5ce3dd736 Mon Sep 17 00:00:00 2001 From: Ali Mehraji Date: Fri, 31 Jan 2025 01:12:14 +0330 Subject: [PATCH] update: Seperate the docker obsolete packages for debian and redhat --- README.md | 24 ++++++++++++++++++++++-- defaults/main.yml | 19 +++++++++++++++++-- tasks/setup-Debian.yml | 4 ++-- tasks/setup-RedHat.yml | 9 ++++----- 4 files changed, 45 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 2460145..d041506 100644 --- a/README.md +++ b/README.md @@ -30,17 +30,37 @@ Debian/Ubuntu: `docker-{{ docker_edition }}=` (Note: you have to add th You can control whether the package is installed, uninstalled, or at the latest version by setting `docker_packages_state` to `present`, `absent`, or `latest`, respectively. Note that the Docker daemon will be automatically restarted if the Docker package is updated. This is a side effect of flushing all handlers (running any of the handlers that have been notified by this and any other role up to this point in the play). ```yaml -docker_obsolete_packages: +# Used only for Debian/Ubuntu +docker_obsolete_packages_debian: - docker - docker.io - docker-engine - docker-doc + - docker-compose + - docker-compose-v2 - podman-docker - containerd - runc + +# Used only for Fedora/CentOS/Rocky +docker_obsolete_packages_redhat: + - docker + - docker-client + - docker-client-latest + - docker-common + - docker-latest + - docker-latest-logrotate + - docker-logrotate + - docker-selinux + - docker-engine-selinux + - docker-engine ``` -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. +A list of packages to be uninstalled prior to running this role. See Docker's installation instructions for an up-to-date list of old packages that should be removed: + +- [Docker's installation instructions - Debian](https://docs.docker.com/engine/install/debian/#uninstall-old-versions) +- [Docker's installation instructions - Fedora](https://docs.docker.com/engine/install/fedora/#uninstall-old-versions) + ```yaml docker_service_manage: true diff --git a/defaults/main.yml b/defaults/main.yml index fa13b89..5a5934d 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -8,15 +8,30 @@ docker_packages: - "containerd.io" - docker-buildx-plugin docker_packages_state: present -docker_obsolete_packages: + +# Used only for Debian/Ubuntu +docker_obsolete_packages_debian: - docker - docker.io - docker-engine - docker-doc + - docker-compose + - docker-compose-v2 - podman-docker - containerd - runc +# Used only for Fedora/CentOS/Rocky +docker_obsolete_packages_redhat: + - docker + - docker-client + - docker-client-latest + - docker-common + - docker-latest + - docker-latest-logrotate + - docker-logrotate + - docker-engine + # Service options. docker_service_manage: true docker_service_state: started @@ -57,7 +72,7 @@ docker_apt_filename: "docker" docker_yum_repo_url: "{{ docker_repo_url }}/{{ (ansible_distribution == 'Fedora') | ternary('fedora','centos') }}/docker-{{ docker_edition }}.repo" docker_yum_repo_enable_nightly: '0' docker_yum_repo_enable_test: '0' -docker_yum_gpg_key: "{{ docker_repo_url }}/centos/gpg" +docker_yum_gpg_key: "{{ docker_repo_url }}/{{ (ansible_distribution == 'Fedora') | ternary('fedora', 'centos') }}/gpg" # A list of users who will be added to the docker group. docker_users: [] diff --git a/tasks/setup-Debian.yml b/tasks/setup-Debian.yml index a1c7d3e..d671fbd 100644 --- a/tasks/setup-Debian.yml +++ b/tasks/setup-Debian.yml @@ -19,8 +19,8 @@ - # See https://docs.docker.com/engine/install/debian/#uninstall-old-versions name: Ensure old versions of Docker are not installed. - package: - name: "{{ docker_obsolete_packages }}" + ansible.builtin.package: + name: "{{ docker_obsolete_packages_debian }}" state: absent - name: Ensure dependencies are installed. diff --git a/tasks/setup-RedHat.yml b/tasks/setup-RedHat.yml index d49316e..ce94a66 100644 --- a/tasks/setup-RedHat.yml +++ b/tasks/setup-RedHat.yml @@ -1,10 +1,9 @@ --- +# See https://docs.docker.com/engine/install/fedora/#uninstall-old-versions +# or https://docs.docker.com/engine/install/centos/#uninstall-old-versions - name: Ensure old versions of Docker are not installed. - package: - name: - - docker - - docker-common - - docker-engine + ansible.builtin.package: + name: "{{ docker_obsolete_packages_redhat }}" state: absent - name: Add Docker GPG key.