#!/usr/bin/env ansible-playbook
---
- hosts: prometheus-fleming.adm.auro.re
  vars:
    prometheus_alertmanager: docker-ovh.adm.auro.re:9093
    snmp_unifi_password: "{{ vault_snmp_unifi_password }}"
    snmp_switch_community: "{{ vault_snmp_switch_community }}"
    snmp_pdu_user: "{{ vault_snmp_pdu_user }}"
    snmp_pdu_password: "{{ vault_snmp_pdu_password }}"

    # Prometheus targets.json
    prometheus_targets:
      - targets: |
          {{ groups['fleming_pve'] + groups['fleming_vm'] | list | sort }}
    prometheus_unifi_snmp_targets:
      - targets: "{{ groups['fleming_unifi'] | list | sort }}"
    update_motd:
      prometheus: >-
        Prometheus (en configuration fleming) est déployé (/etc/prometheus).
  roles:
    - prometheus
    - update_motd

- hosts: prometheus-pacaterie.adm.auro.re
  vars:
    prometheus_alertmanager: docker-ovh.adm.auro.re:9093
    snmp_unifi_password: "{{ vault_snmp_unifi_password }}"
    snmp_switch_community: "{{ vault_snmp_switch_community }}"
    snmp_pdu_user: "{{ vault_snmp_pdu_user }}"
    snmp_pdu_password: "{{ vault_snmp_pdu_password }}"

    # Prometheus targets.json
    prometheus_targets:
      - targets: |
          {{ groups['pacaterie_pve'] + groups['pacaterie_vm'] | list | sort }}
    prometheus_unifi_snmp_targets:
      - targets: "{{ groups['pacaterie_unifi'] | list | sort }}"
    prometheus_ups_snmp_targets:
      - ups-pn-1.ups.auro.re
      - ups-ps-1.ups.auro.re
    update_motd:
      prometheus: >-
        Prometheus (en configuration pacaterie) est déployé (/etc/prometheus).
  roles:
    - prometheus
    - update_motd

- hosts: prometheus-edc.adm.auro.re
  vars:
    prometheus_alertmanager: docker-ovh.adm.auro.re:9093
    snmp_unifi_password: "{{ vault_snmp_unifi_password }}"
    snmp_switch_community: "{{ vault_snmp_switch_community }}"
    snmp_pdu_user: "{{ vault_snmp_pdu_user }}"
    snmp_pdu_password: "{{ vault_snmp_pdu_password }}"

    # Prometheus targets.json
    prometheus_ups_snmp_targets:
      - ups-ec-1.ups.auro.re
      - ups-ec-2.ups.auro.re
      - ups-ec-3.ups.auro.re

    prometheus_targets:
      - targets: |
          {{ groups['edc_pve'] + groups['edc_vm'] + groups['edc_server'] | list | sort }}
    prometheus_unifi_snmp_targets:
      - targets: "{{ groups['edc_unifi'] | list | sort }}"
    update_motd:
      prometheus: >-
        Prometheus (en configuration edc) est déployé (/etc/prometheus).
  roles:
    - prometheus
    - update_motd

- hosts: prometheus-gs.adm.auro.re
  vars:
    prometheus_alertmanager: docker-ovh.adm.auro.re:9093
    snmp_unifi_password: "{{ vault_snmp_unifi_password }}"
    snmp_switch_community: "{{ vault_snmp_switch_community }}"
    snmp_pdu_user: "{{ vault_snmp_pdu_user }}"
    snmp_pdu_password: "{{ vault_snmp_pdu_password }}"

    # Prometheus targets.json
    prometheus_targets:
      - targets: |
          {{ groups['gs_pve'] + groups['gs_vm'] | list | sort }}
    prometheus_unifi_snmp_targets:
      - targets: "{{ groups['gs_unifi'] | list | sort }}"
    prometheus_ups_snmp_targets:
      - ups-gk-1.ups.auro.re
    prometheus_pdu_snmp_targets:
      - pdu-ga-1.ups.auro.re
    update_motd:
      prometheus: >-
        Prometheus (en configuration gs) est déployé (/etc/prometheus).
  roles:
    - prometheus
    - update_motd

- hosts: prometheus-rives.adm.auro.re
  vars:
    prometheus_alertmanager: docker-ovh.adm.auro.re:9093
    snmp_unifi_password: "{{ vault_snmp_unifi_password }}"
    snmp_switch_community: "{{ vault_snmp_switch_community }}"
    snmp_pdu_user: "{{ vault_snmp_pdu_user }}"
    snmp_pdu_password: "{{ vault_snmp_pdu_password }}"

    # Prometheus targets.json
    prometheus_ups_snmp_targets:
      - ups-r3-1.ups.auro.re
      - ups-r1-1.ups.auro.re

    prometheus_targets:
      - targets: |
          {{ groups['rives_pve'] + groups['rives_vm'] | list | sort }}
    prometheus_unifi_snmp_targets:
      - targets: "{{ groups['rives_unifi'] | list | sort }}"
    update_motd:
      prometheus: >-
        Prometheus (en configuration rives) est déployé (/etc/prometheus).
  roles:
    - prometheus
    - update_motd

- hosts: prometheus-aurore.adm.auro.re
  vars:
    prometheus_alertmanager: docker-ovh.adm.auro.re:9093
    snmp_unifi_password: "{{ vault_snmp_unifi_password }}"
    snmp_switch_community: "{{ vault_snmp_switch_community }}"
    snmp_pdu_user: "{{ vault_snmp_pdu_user }}"
    snmp_pdu_password: "{{ vault_snmp_pdu_password }}"

    # Prometheus targets.json
    prometheus_targets:
      - targets: |
          {{ groups['aurore_pve'] + groups['aurore_vm'] | list | sort }}
    prometheus_postgres_targets:
      - targets: |
          {{ groups['bdd'] + groups['radius'] | list | sort }}
    prometheus_switch_snmp_targets:
      - targets:
          - yggdrasil.switch.auro.re
          - sw-pn-serveurs.switch.auro.re
          - sw-ec-serveurs.switch.auro.re
          - sw-gk-serveurs.switch.auro.re
          - sw-fl-serveurs.switch.auro.re
          - sw-ff-uplink.switch.auro.re
          - sw-fl-core.switch.auro.re
          - sw-fd-vcore.switch.auro.re
          - sw-fl-vcore.switch.auro.re
          - sw-ff-vcore.switch.auro.re
          - sw-pn-core.switch.auro.re
          - sw-ec-core.switch.auro.re
          - sw-gk-core.switch.auro.re
          - sw-r3-core.switch.auro.re
    update_motd:
      prometheus: >-
        Prometheus (en configuration aurore) est déployé (/etc/prometheus).
  roles:
    - prometheus
    - update_motd

- hosts: prometheus-ovh.adm.auro.re
  vars:
    prometheus_alertmanager: docker-ovh.adm.auro.re:9093
    snmp_unifi_password: "{{ vault_snmp_unifi_password }}"
    snmp_switch_community: "{{ vault_snmp_switch_community }}"
    snmp_pdu_user: "{{ vault_snmp_pdu_user }}"
    snmp_pdu_password: "{{ vault_snmp_pdu_password }}"

    # Prometheus targets.json
    prometheus_targets:
      - targets: |
          {{ groups['ovh_pve'] + groups['ovh_vm'] | list | sort }}
    prometheus_postgres_targets:
      - targets:
          - bdd-ovh.adm.auro.re
    prometheus_docker_targets:
      - docker-ovh.adm.auro.re
    update_motd:
      prometheus: >-
        Prometheus (en configuration ovh) est déployé (/etc/prometheus).
  roles:
    - prometheus
    - update_motd

- hosts: prometheus-federate.adm.auro.re
  vars:
    prometheus_alertmanager: docker-ovh.adm.auro.re:9093
    snmp_unifi_password: "{{ vault_snmp_unifi_password }}"
    snmp_pdu_user: "{{ vault_snmp_pdu_user }}"
    snmp_pdu_password: "{{ vault_snmp_pdu_password }}"

    # Prometheus targets.json
    prometheus_targets:
      - prometheus-edc.adm.auro.re
      - prometheus-gs.adm.auro.re
      - prometheus-fleming.adm.auro.re
      - prometheus-pacaterie.adm.auro.re
      - prometheus-rives.adm.auro.re
      - prometheus-aurore.adm.auro.re
      - prometheus-ovh.adm.auro.re
    update_motd:
      prometheus_federate: >-
        Prometheus (en configuration fédération) est déployé (/etc/prometheus).
  roles:
    - prometheus_federate
    - update_motd

# Postgres Exporters
- hosts: bdd,radius
  roles:
    - prometheus_postgres

# Monitor all hosts
- hosts: all,!edc_unifi,!fleming_unifi,!pacaterie_unifi,!gs_unifi,!rives_unifi,!aurore_testing_vm,!ovh_container
  roles:
    - prometheus_node