From 215ff3b471489a89c4d6730ef1205b26ea33f308 Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 20 Nov 2025 10:59:48 +0000 Subject: [PATCH] Update file main.yml --- roles/cadvisor/tasks/main.yml | 39 ++++++++++++++++++++++++----------- 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/roles/cadvisor/tasks/main.yml b/roles/cadvisor/tasks/main.yml index bc5eb39..be89f11 100644 --- a/roles/cadvisor/tasks/main.yml +++ b/roles/cadvisor/tasks/main.yml @@ -5,11 +5,6 @@ ignore_errors: yes changed_when: false -- name: Set default cadvisor port - set_fact: - cadvisor_port: "{{ cadvisor_port | default(8080) }}" - when: docker_check.rc == 0 - - name: Install cAdvisor (only on Docker hosts) block: - name: Create cAdvisor directories @@ -18,8 +13,8 @@ state: directory mode: '0755' loop: - - "{{ cadvisor_base_dir | default('/opt/cadvisor') }}" - - "{{ cadvisor_config_dir | default('/opt/cadvisor/config') }}" + - "{{ cadvisor_base_dir }}" + - "{{ cadvisor_config_dir }}" become: yes - name: Check if port {{ cadvisor_port }} is available @@ -35,7 +30,7 @@ - name: Deploy cAdvisor docker-compose template: src: docker-compose.yml.j2 - dest: "{{ cadvisor_base_dir | default('/opt/cadvisor') }}/docker-compose.yml" + dest: "{{ cadvisor_base_dir }}/docker-compose.yml" owner: root group: root mode: '0644' @@ -43,16 +38,16 @@ - name: Stop existing cAdvisor container community.docker.docker_compose_v2: - project_src: "{{ cadvisor_base_dir | default('/opt/cadvisor') }}" + 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 | default('/opt/cadvisor') }}" + project_src: "{{ cadvisor_base_dir }}" state: present - recreate: always # ИСПРАВЛЕНО: always вместо yes + recreate: always become: yes register: cadvisor_start @@ -65,7 +60,7 @@ become: no - name: Check cAdvisor container status - shell: docker ps -f name=cadvisor --format "table {{.Names}}\t{{.Status}}" + shell: "docker ps -f name=cadvisor" register: container_info become: yes @@ -73,6 +68,17 @@ debug: var: container_info.stdout + - name: Get cAdvisor container logs if check failed + shell: "docker logs cadvisor" + register: cadvisor_logs + become: yes + when: container_info.rc != 0 or "'Up' not in container_info.stdout" + + - name: Display cAdvisor logs if container not running + debug: + var: cadvisor_logs.stdout + when: cadvisor_logs is defined + - name: Verify cAdvisor is responding uri: url: "http://localhost:{{ cadvisor_port }}/metrics" @@ -80,12 +86,21 @@ timeout: 10 register: cadvisor_check become: no + ignore_errors: yes - name: Show cAdvisor status debug: msg: "cAdvisor is running and responding on port {{ cadvisor_port }}" when: cadvisor_check.status == 200 + - name: Fail if cAdvisor not responding + fail: + msg: | + cAdvisor failed to start on {{ inventory_hostname }}. + Container status: {{ container_info.stdout }} + Logs: {{ cadvisor_logs.stdout if cadvisor_logs is defined else 'No logs available' }} + when: cadvisor_check.status != 200 + when: - docker_check.rc == 0 - cadvisor_enabled | default(true) \ No newline at end of file