Browse Source

Merge pull request #1752 from sdodson/docker-reset

Enable docker before potentially resetting the failure
Brenton Leanhardt 9 years ago
parent
commit
b9099c18e7
1 changed files with 15 additions and 3 deletions
  1. 15 3
      roles/docker/tasks/main.yml

+ 15 - 3
roles/docker/tasks/main.yml

@@ -24,17 +24,29 @@
   action: "{{ ansible_pkg_mgr }} name=docker{{ '-' + docker_version if docker_version is defined and docker_version != '' else '' }} state=present"
   when: not openshift.common.is_atomic | bool and not docker_version_result | skipped and docker_version_result.stdout | default('0.0', True) | version_compare(docker_version, 'lt')
 
-# We're getting ready to start docker.  This is a workaround for cases where it
-# seems a package install/upgrade/downgrade has rebooted docker and crashed it.
+- name: Start the docker service
+  service:
+    name: docker
+    enabled: yes
+    state: started
+  register: start_result
+  ignore_errors: yes
+
+# If docker were enabled and started before we downgraded it there's a real possibility
+# that it's marked failed, so if our first attempt to start it fails reset the failure
+# and start it again.
 - name: Reset docker service state
   command: systemctl reset-failed docker.service
+  when: start_result | failed
+  register: reset_failed
 
-- name: enable and start the docker service
+- name: Start the docker service if it had failed
   service:
     name: docker
     enabled: yes
     state: started
   register: start_result
+  when: reset_failed | changed
 
 - set_fact:
     docker_service_status_changed: start_result | changed