/
/
/
1---
2# Monitoring Role - Glances Deployment Tasks
3
4- name: Create Glances config directory
5 ansible.builtin.file:
6 path: "{{ glances_config_dir }}"
7 state: directory
8 owner: root
9 group: root
10 mode: "0755"
11
12- name: Render Glances configuration file
13 ansible.builtin.template:
14 src: glances.conf.j2
15 dest: "{{ glances_config_dir }}/glances.conf"
16 owner: root
17 group: root
18 mode: "0644"
19 notify: restart glances
20
21- name: Render Glances environment file
22 ansible.builtin.template:
23 src: glances.env.j2
24 dest: "{{ glances_config_dir }}/.env"
25 owner: root
26 group: root
27 mode: "0600"
28 notify: restart glances
29
30- name: Render Glances docker-compose file
31 ansible.builtin.template:
32 src: glances-compose.yml.j2
33 dest: "{{ glances_config_dir }}/docker-compose.yml"
34 owner: root
35 group: root
36 mode: "0644"
37 notify: restart glances
38
39- name: Start Glances service
40 community.docker.docker_compose_v2:
41 project_src: "{{ glances_config_dir }}"
42 state: present
43
44- name: Wait for Glances web interface
45 ansible.builtin.uri:
46 url: "http://localhost:{{ glances_web_port }}/api/4/status"
47 method: GET
48 status_code: [200]
49 retries: 6
50 delay: 5
51 register: glances_health
52 ignore_errors: true
53
54- name: Display Glances deployment summary
55 ansible.builtin.debug:
56 msg: |
57 Glances monitoring deployed on {{ inventory_hostname }}
58 Web UI: http://{{ ansible_default_ipv4.address }}:{{ glances_web_port }}
59 Health: {{ 'OK' if glances_health is succeeded else 'NOT READY - check container logs' }}
60 GPU: {{ glances_gpu_monitoring | default(false) }}
61 Storage: {{ glances_storage_monitoring | default(false) }}
62 Directories: {{ glances_monitored_directories | map(attribute='path') | list | join(', ') | default('none') }}
63