ansible/roles/prometheus/tasks/main.yml

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