60 lines
1.5 KiB
YAML
60 lines
1.5 KiB
YAML
---
|
|
- name: Install Prometheus
|
|
apt:
|
|
update_cache: true
|
|
name: prometheus
|
|
register: apt_result
|
|
retries: 3
|
|
until: apt_result is succeeded
|
|
|
|
- name: Configure Prometheus
|
|
template:
|
|
src: prometheus/prometheus.yml.j2
|
|
dest: /etc/prometheus/prometheus.yml
|
|
mode: 0644
|
|
notify: Restart Prometheus
|
|
|
|
- name: Configure Prometheus alert rules
|
|
template:
|
|
src: "prometheus/{{ item }}.j2"
|
|
dest: "/etc/prometheus/{{ item }}"
|
|
mode: 0644
|
|
notify: Restart Prometheus
|
|
loop:
|
|
- alert.rules.yml
|
|
- django.rules.yml
|
|
|
|
# We don't need to restart Prometheus when updating nodes
|
|
- name: Configure Prometheus targets
|
|
copy:
|
|
content: "{{ [{'targets': item.targets}] | to_nice_json }}\n"
|
|
dest: "/etc/prometheus/{{ item.file }}.json"
|
|
mode: 0644
|
|
loop:
|
|
- file: targets
|
|
targets: "{{ prometheus.node_targets }}"
|
|
- file: targets_ups_snmp
|
|
targets: "{{ prometheus.ups_snmp_targets }}"
|
|
- file: targets_procurve_snmp
|
|
targets: "{{ prometheus.procurve_snmp_targets }}"
|
|
- file: targets_unifi_snmp
|
|
targets: "{{ prometheus.unifi_snmp_targets }}"
|
|
- file: targets_nginx
|
|
targets: "{{ prometheus.nginx_targets }}"
|
|
- file: targets_apache
|
|
targets: "{{ prometheus.apache_targets }}"
|
|
- file: targets_blackbox
|
|
targets: "{{ prometheus.blackbox_targets }}"
|
|
|
|
- name: Activate prometheus service
|
|
systemd:
|
|
name: prometheus
|
|
enabled: true
|
|
state: started
|
|
|
|
- name: Indicate role in motd
|
|
template:
|
|
src: update-motd.d/05-service.j2
|
|
dest: /etc/update-motd.d/05-prometheus
|
|
mode: 0755
|