--- - name: Docker Status Check for HCP Nodes hosts: hcp gather_facts: yes become: yes tasks: - name: Check if Docker is installed command: docker --version register: docker_version ignore_errors: yes - name: Display Docker version debug: msg: "Docker version: {{ docker_version.stdout }}" when: docker_version.rc == 0 - name: Check Docker service status systemd: name: docker register: docker_service_status - name: Display Docker service status debug: msg: "Docker service is {{ docker_service_status.status.ActiveState }}" - name: Check Docker daemon info command: docker info --format "{{ '{{' }}.ServerVersion{{ '}}' }}" register: docker_info ignore_errors: yes - name: Display Docker daemon info debug: msg: "Docker daemon version: {{ docker_info.stdout }}" when: docker_info.rc == 0 - name: Check Docker Swarm status command: docker info --format "{{ '{{' }}.Swarm.LocalNodeState{{ '}}' }}" register: swarm_status ignore_errors: yes - name: Display Swarm status debug: msg: "Swarm status: {{ swarm_status.stdout }}" when: swarm_status.rc == 0 - name: Get Docker Swarm node info (if in swarm) command: docker node ls register: swarm_nodes ignore_errors: yes when: swarm_status.stdout == "active" - name: Display Swarm nodes debug: msg: "{{ swarm_nodes.stdout_lines }}" when: swarm_nodes is defined and swarm_nodes.rc == 0 - name: List running containers command: docker ps --format "table {{ '{{' }}.Names{{ '}}' }}\t{{ '{{' }}.Status{{ '}}' }}\t{{ '{{' }}.Ports{{ '}}' }}" register: running_containers ignore_errors: yes - name: Display running containers debug: msg: "{{ running_containers.stdout_lines }}" when: running_containers.rc == 0 - name: Check Docker network list command: docker network ls register: docker_networks ignore_errors: yes - name: Display Docker networks debug: msg: "{{ docker_networks.stdout_lines }}" when: docker_networks.rc == 0 - name: Get Docker system info command: docker system df register: docker_system_info ignore_errors: yes - name: Display Docker system usage debug: msg: "{{ docker_system_info.stdout_lines }}" when: docker_system_info.rc == 0 - name: Check if node is Swarm manager command: docker node inspect self --format "{{ '{{' }}.ManagerStatus.Leader{{ '}}' }}" register: is_manager ignore_errors: yes when: swarm_status.stdout == "active" - name: Display manager status debug: msg: "Is Swarm manager: {{ is_manager.stdout }}" when: is_manager is defined and is_manager.rc == 0