ansible/roles/prometheus/tasks/main.yml

95 lines
2.5 KiB
YAML
Raw Normal View History

2019-05-05 14:07:04 +02:00
---
- name: Install Prometheus
apt:
update_cache: true
2019-07-22 20:56:43 +02:00
name:
- prometheus
- prometheus-snmp-exporter
2019-05-05 14:07:04 +02:00
register: apt_result
retries: 3
until: apt_result is succeeded
- name: Configure Prometheus
template:
src: prometheus/prometheus.yml.j2
dest: /etc/prometheus/prometheus.yml
2020-11-04 19:31:50 +01:00
mode: 0644
2019-05-05 14:07:04 +02:00
notify: Restart Prometheus
- name: Configure Prometheus alert rules
template:
2019-07-22 20:56:43 +02:00
src: "prometheus/{{ item }}.j2"
dest: "/etc/prometheus/{{ item }}"
2020-11-04 19:31:50 +01:00
mode: 0644
2019-05-05 14:07:04 +02:00
notify: Restart Prometheus
2019-07-22 20:56:43 +02:00
loop:
- alert.rules.yml
- django.rules.yml
- name: Make Prometheus snmp-exporter listen on localhost only
lineinfile:
path: /etc/default/prometheus-snmp-exporter
regexp: '^ARGS='
line: "ARGS=\"--web.listen-address=127.0.0.1:9116\""
notify: Restart prometheus-snmp-exporter
2019-05-05 14:07:04 +02:00
2019-11-01 14:16:32 +01:00
# This file store SNMP OIDs
- name: Configure Prometheus snmp-exporter
template:
src: "prometheus/snmp.yml.j2"
dest: "/etc/prometheus/snmp.yml"
mode: 0600
owner: prometheus
notify: Restart prometheus-snmp-exporter
2019-05-05 14:07:04 +02:00
# We don't need to restart Prometheus when updating nodes
- name: Configure Prometheus nodes
copy:
content: "{{ prometheus_targets | to_nice_json }}"
dest: /etc/prometheus/targets.json
2020-11-04 19:31:50 +01:00
mode: 0644
2019-07-22 20:56:43 +02:00
2019-11-01 14:16:32 +01:00
# We don't need to restart Prometheus when updating nodes
- name: Configure Prometheus Ubiquity Unifi SNMP devices
copy:
content: "{{ prometheus_unifi_snmp_targets | to_nice_json }}"
dest: /etc/prometheus/targets_unifi_snmp.json
2020-11-04 19:31:50 +01:00
mode: 0644
2021-01-29 20:12:14 +01:00
when: prometheus_unifi_snmp_targets is defined
2019-11-01 14:16:32 +01:00
2021-03-06 01:57:08 +01:00
- name: Configure Prometheus Switchs
copy:
content: "{{ prometheus_switch_snmp_targets | to_nice_json }}"
dest: /etc/prometheus/targets_switch_snmp.json
mode: 0644
when: prometheus_switch_snmp_targets is defined
- name: Configure Prometheus UPS SNMP devices
copy:
content: "{{ [{'targets': prometheus_ups_snmp_targets }] | to_nice_json }}\n"
dest: /etc/prometheus/targets_ups_snmp.json
mode: 0644
2021-01-23 19:01:27 +01:00
when: prometheus_ups_snmp_targets is defined
2021-02-10 19:06:28 +01:00
- name: Configure Prometheus docker monitoring
copy:
content: "{{ [{'targets': prometheus_docker_targets }] | to_nice_json }}\n"
dest: /etc/prometheus/targets_docker.json
mode: 0644
when: prometheus_docker_targets is defined
2019-07-22 20:56:43 +02:00
- name: Activate prometheus service
systemd:
name: prometheus
2019-07-22 21:04:58 +02:00
enabled: true
2019-07-22 20:56:43 +02:00
state: started
2021-03-06 04:32:06 +01:00
- include_role:
name: update_motd
vars:
motd_messages:
- key: 05-prometheus
message: >-
Prometheus est déployé sur cette machine (voir /etc/prometheus)
...