--- - name: Check if Docker is installed command: docker --version register: docker_check ignore_errors: yes changed_when: false - name: Install cAdvisor block: - name: Create cAdvisor directories file: path: "{{ item }}" state: directory mode: '0755' loop: - "{{ cadvisor_base_dir }}" - "{{ cadvisor_config_dir }}" become: yes - name: Check if port {{ cadvisor_port }} is available wait_for: host: localhost port: "{{ cadvisor_port }}" state: stopped timeout: 5 ignore_errors: yes register: port_check become: no - name: Deploy cAdvisor docker-compose template: src: docker-compose.yml.j2 dest: "{{ cadvisor_base_dir }}/docker-compose.yml" owner: root group: root mode: '0644' become: yes - name: Stop existing cAdvisor container community.docker.docker_compose_v2: project_src: "{{ cadvisor_base_dir }}" state: absent become: yes ignore_errors: yes - name: Run cAdvisor container community.docker.docker_compose_v2: project_src: "{{ cadvisor_base_dir }}" state: present become: yes - name: Wait for cAdvisor to start wait_for: host: localhost port: "{{ cadvisor_port }}" timeout: 30 state: started become: no - name: Check cAdvisor container status community.docker.docker_container_info: name: cadvisor register: container_info become: yes - name: Verify cAdvisor is responding uri: url: "http://localhost:{{ cadvisor_port }}/metrics" status_code: 200 timeout: 10 register: cadvisor_check become: no - name: Show cAdvisor status debug: msg: "cAdvisor is running and responding on port {{ cadvisor_port }}" when: cadvisor_check.status == 200 rescue: - name: Get cAdvisor container logs community.docker.docker_container_logs: name: cadvisor tail: 50 register: cadvisor_logs become: yes - name: Display cAdvisor logs for debugging debug: var: cadvisor_logs.log when: cadvisor_logs is defined - name: Check running containers command: docker ps -a register: docker_ps become: yes - name: Display running containers debug: var: docker_ps.stdout when: docker_ps is defined - name: Fail with detailed error message fail: msg: | cAdvisor не удалось запустить {{ inventory_hostname }}. Порт {{ cadvisor_port }} может использоваться или контейнер выходит из строя. Подробности смотрите в журналах выше. when: - docker_check.rc == 0 - cadvisor_enabled | default(true)