/
/
/
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: "{{ ansible_user }}"
9 group: users
10 mode: "0775"
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: "{{ ansible_user }}"
17 group: users
18 mode: "0664"
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: "{{ ansible_user }}"
26 group: users
27 mode: "0660"
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: "{{ ansible_user }}"
35 group: users
36 mode: "0664"
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 pull: always
44
45- name: Wait for Glances web interface
46 ansible.builtin.uri:
47 url: "http://localhost:{{ glances_web_port }}/api/4/status"
48 method: GET
49 status_code: [200]
50 retries: 6
51 delay: 5
52 register: glances_health
53 ignore_errors: true
54
55- name: Display Glances deployment summary
56 ansible.builtin.debug:
57 msg: |
58 Glances monitoring deployed on {{ inventory_hostname }}
59 Web UI: http://{{ ansible_default_ipv4.address }}:{{ glances_web_port }}
60 Health: {{ 'OK' if glances_health is succeeded else 'NOT READY - check container logs' }}
61 GPU: {{ glances_gpu_monitoring | default(false) }}
62 Storage: {{ glances_storage_monitoring | default(false) }}
63 Directories: {{ glances_monitored_directories | map(attribute='path') | list | join(', ') | default('none') }}
64