#!/usr/bin/env ansible-playbook
---

# Deploy Prometheus on monitoring server
- hosts: prometheus
  vars:
    prometheus: "{{ glob_prometheus | default({}) | combine(loc_prometheus | default({})) }}"
    alertmanager: "{{ glob_alertmanager | default({}) | combine(loc_alertmanager | default({})) }}"
    snmp_exporter: "{{ glob_snmp_exporter | default({}) | combine(loc_snmp_exporter | default({})) }}"
    ninjabot: "{{ glob_ninjabot | default({}) | combine(loc_ninjabot | default({})) }}"
  roles:
    - prometheus
    - prometheus-alertmanager
    - prometheus-snmp-exporter
    - ninjabot

# Deploy Grafana on monitoring server
- hosts: grafana
  vars:
    grafana: "{{ glob_grafana | default({}) | combine(loc_grafana | default({})) }}"
  roles:
    - grafana

- hosts: blackbox
  roles:
    - prometheus-blackbox-exporter

# Monitor all hosts
- hosts: server
  vars:
    prometheus_node_exporter: "{{ glob_prometheus_node_exporter | default({}) | combine(loc_prometheus_node_exporter | default({})) }}"
  roles:
    - prometheus-node-exporter

# Export nginx metrics
- hosts: nginx
  vars:
    prometheus_nginx_exporter: "{{ glob_prometheus_nginx_exporter | default({}) | combine(loc_prometheus_nginx_exporter | default({})) }}"
  roles:
    - prometheus-nginx-exporter

# Monitor mailq with a special text exporter
# - hosts: redisdead.adm.crans.org
#   roles: ["prometheus-node-exporter-postfix"]

# Monitor logs with mtail
- hosts: mtail
  vars:
    mtail: '{{ glob_mtail | default({}) | combine(loc_mtail | default({})) }}'
  roles:
    - mtail

- hosts: sputnik.adm.crans.org
  roles:
    - statping