--- - name: Something hosts: all become: false gather_facts: true vars: bigboot_docker_service: docker.service bigboot_docker_running: stopped bigboot_docker_enabled: false tasks: - name: Get the list of services on the host ansible.builtin.service_facts: # - name: Debug services # ansible.builtin.debug: # var: ansible_facts['services'] - name: Show docker.service infos ansible.builtin.debug: msg: "{{ ansible_facts['services'][bigboot_docker_service] }}" when: - "'docker.service' in ansible_facts['services']" # - name: Set Docker environemnt # ansible.builtin.set_fact: # bigboot_docker_data: "{{ bigboot_docker_data | default({}) | # combine({inventory_hostname: # { # 'bigboot_docker_running': ansible_facts['services'][bigboot_docker_service]['state'], # 'bigboot_docker_enabled': ansible_facts['services'][bigboot_docker_service]['status'] # } # }) }}" # - name: Set Docker running state # ansible.builtin.set_fact: # bigboot_docker_running: started # when: # - ansible_facts['services'][bigboot_docker_service] is defined # - ansible_facts['services'][bigboot_docker_service]['state'] == "running" # - name: Set Docker enabled state # ansible.builtin.set_fact: # bigboot_docker_enabled: true # when: # - ansible_facts['services'][bigboot_docker_service] is defined # - ansible_facts['services'][bigboot_docker_service]['status'] == "enabled" - name: Manage Docker state if required when: - ansible_facts['services'][bigboot_docker_service] is defined block: - name: Set Docker running state ansible.builtin.set_fact: bigboot_docker_running: started when: - ansible_facts['services'][bigboot_docker_service]['state'] == "running" - name: Set Docker enabled state ansible.builtin.set_fact: bigboot_docker_enabled: true when: - ansible_facts['services'][bigboot_docker_service]['status'] == "enabled" - name: Debug bigboot_docker_running ansible.builtin.debug: msg: "{{ bigboot_docker_running }}" - name: Debug bigboot_docker_enabled ansible.builtin.debug: msg: "{{ bigboot_docker_enabled }}" - name: Stop Docker service due to incompatibility ansible.builtin.service: name: "{{ bigboot_docker_service }}" state: stopped enabled: false when: - ansible_facts['services'][bigboot_docker_service] is defined - ansible_facts['services'][bigboot_docker_service]['state'] == "running" - name: Sleep for 30 seconds ansible.builtin.pause: seconds: 30 - name: Restore Docker service to its pre-Bigboot state ansible.builtin.service: name: "{{ bigboot_docker_service }}" state: "{{ bigboot_docker_running }}" enabled: "{{ bigboot_docker_enabled }}" when: - ansible_facts['services'][bigboot_docker_service] is defined # - name: Re-enable Docker service # ansible.builtin.service: # name: docker.service # state: started # enabled: true # when: # - "'docker.service' in ansible_facts['services']" # - name: Stop Docker service due to incompatibility # ansible.builtin.service: # name: "{{ bigboot_docker_service }}" # state: stopped # when: # - ansible_facts['services'][bigboot_docker_service] is defined # - ansible_facts['services'][bigboot_docker_service]['state'] == "running"