ajoute la supervision : règles d'alerte Prometheus, relais ntfy, Uptime Kuma
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
parent
d21c6ef544
commit
aa31b6112f
12 changed files with 432 additions and 0 deletions
100
ansible/roles/supervision/tasks/main.yml
Normal file
100
ansible/roles/supervision/tasks/main.yml
Normal file
|
|
@ -0,0 +1,100 @@
|
|||
---
|
||||
- name: vérifier la présence du fichier webhook (jamais son contenu)
|
||||
ansible.builtin.stat:
|
||||
path: "{{ supervision_fichier_webhook }}"
|
||||
register: supervision_webhook_stat
|
||||
|
||||
- name: échouer clairement si le webhook est absent
|
||||
ansible.builtin.fail:
|
||||
msg: >
|
||||
{{ supervision_fichier_webhook }} est absent. Adam doit le déposer
|
||||
lui-même (chmod 600) avant de continuer : c'est un secret, Claude ne le
|
||||
demande jamais en clair.
|
||||
when: not supervision_webhook_stat.stat.exists
|
||||
|
||||
- name: vérifier les permissions du fichier webhook
|
||||
ansible.builtin.fail:
|
||||
msg: "{{ supervision_fichier_webhook }} ne devrait pas être lisible par d'autres utilisateurs (mode actuel {{ supervision_webhook_stat.stat.mode }})."
|
||||
when:
|
||||
- supervision_webhook_stat.stat.exists
|
||||
- supervision_webhook_stat.stat.mode != '0600'
|
||||
|
||||
- name: créer le dossier des métriques textfile (node_exporter)
|
||||
ansible.builtin.file:
|
||||
path: "{{ supervision_dossier_textfile }}"
|
||||
state: directory
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0755"
|
||||
|
||||
- name: créer le dossier de configuration Prometheus personnalisée
|
||||
ansible.builtin.file:
|
||||
path: /etc/kolla/config/prometheus
|
||||
state: directory
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0750"
|
||||
|
||||
- name: déployer les règles d'alerte Prometheus
|
||||
ansible.builtin.copy:
|
||||
src: "{{ playbook_dir }}/../kolla/config/prometheus/alertes.rules"
|
||||
dest: /etc/kolla/config/prometheus/alertes.rules
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0640"
|
||||
register: supervision_regles_alerte
|
||||
|
||||
- name: déployer la configuration Alertmanager
|
||||
ansible.builtin.copy:
|
||||
src: "{{ playbook_dir }}/../kolla/config/prometheus/prometheus-alertmanager.yml"
|
||||
dest: /etc/kolla/config/prometheus/prometheus-alertmanager.yml
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0640"
|
||||
register: supervision_config_alertmanager
|
||||
|
||||
- name: déployer le relais Alertmanager -> ntfy
|
||||
ansible.builtin.template:
|
||||
src: alertmanager-ntfy.py.j2
|
||||
dest: /usr/local/sbin/alertmanager-ntfy.py
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0700"
|
||||
notify: redémarrer le relais alertmanager-ntfy
|
||||
|
||||
- name: déployer le service systemd du relais
|
||||
ansible.builtin.template:
|
||||
src: alertmanager-ntfy.service.j2
|
||||
dest: /etc/systemd/system/alertmanager-ntfy.service
|
||||
mode: "0644"
|
||||
notify:
|
||||
- recharger systemd
|
||||
- redémarrer le relais alertmanager-ntfy
|
||||
|
||||
- name: appliquer les changements du relais
|
||||
ansible.builtin.meta: flush_handlers
|
||||
|
||||
- name: vérifier que le relais tourne
|
||||
ansible.builtin.systemd:
|
||||
name: alertmanager-ntfy
|
||||
state: started
|
||||
enabled: true
|
||||
|
||||
- name: déployer Uptime Kuma
|
||||
community.docker.docker_container:
|
||||
name: uptime-kuma
|
||||
image: louislam/uptime-kuma:1
|
||||
state: started
|
||||
restart_policy: unless-stopped
|
||||
ports:
|
||||
- "127.0.0.1:{{ supervision_port_uptime_kuma }}:3001"
|
||||
volumes:
|
||||
- uptime-kuma-data:/app/data
|
||||
|
||||
- name: afficher s'il faut relancer Kolla pour les nouvelles règles
|
||||
ansible.builtin.debug:
|
||||
msg: >
|
||||
Config Prometheus/Alertmanager modifiée : lancer
|
||||
`kolla-ansible reconfigure -i /etc/kolla/all-in-one --tags prometheus`
|
||||
sur le serveur (voir docs/runbooks/supervision.md).
|
||||
when: supervision_regles_alerte.changed or supervision_config_alertmanager.changed
|
||||
Loading…
Add table
Add a link
Reference in a new issue