docker-rm: check if rpm dependency is actually installed
If the deployment wasn't deployed under Docker, python2-docker package is missing. Therefore, during the upgrade we don't want to try to remove the containers under Docker, since they don't exist anyway. python2-docker is needed by Ansible to remove the containers, so let's make sure the package is installed, which is the case when the deployment was under Docker. If the rpm doesn't exist, we'll skip the tasks and don't try to remove the containers. The main case where docker-rm is useful is when upgrading on centos7 from rocky to stein, since we clear containers running in Docker during the upgrade, so they run on Podman. In reality, the future platform won't have Docker installed, so this role will become useless and we'll probably deprecate it. Closes-Bug: #1824301 Change-Id: Ic5036ffa756775e3806e18b09e034af2290bfb56
This commit is contained in:
parent
2c5d3f5f7d
commit
e368e15226
@ -1,11 +1,12 @@
|
||||
---
|
||||
- name: Check if docker is installed
|
||||
stat:
|
||||
path: /usr/bin/docker
|
||||
register: docker_path_stat
|
||||
- name: Check if python2-docker is installed
|
||||
command: /usr/bin/rpm -q python2-docker
|
||||
register: py2_docker_installed
|
||||
ignore_errors: true
|
||||
changed_when: false
|
||||
|
||||
- name: Ensure docker service is running
|
||||
when: docker_path_stat.stat.exists
|
||||
when: py2_docker_installed.rc|default('') == 0
|
||||
systemd:
|
||||
name: docker
|
||||
register: docker_service_state
|
||||
@ -16,6 +17,6 @@
|
||||
state: absent
|
||||
when:
|
||||
- container_cli == 'podman'
|
||||
- docker_path_stat.stat.exists
|
||||
- py2_docker_installed.rc|default('') == 0
|
||||
- docker_service_state.status['SubState'] == 'running'
|
||||
with_items: "{{ containers_to_rm }}"
|
||||
|
Loading…
Reference in New Issue
Block a user