diff --git a/base.yml b/base.yml index 4c665e830e7e93d2e9b1d6046f8afed96ab4d4b7..0c6f3bfc3b6a388c994ae7ee663b428bbc120fb3 100644 --- a/base.yml +++ b/base.yml @@ -1,6 +1,6 @@ --- # Deploy common Crans configuration and tools -- hosts: all +- hosts: server vars: # Debian mirror on adm debian_mirror: http://mirror.adm.crans.org/debian @@ -24,7 +24,7 @@ - ntp-client # Plug LDAP on all servers -- hosts: all +- hosts: server vars: # LDAP binding ldap_base: 'dc=crans,dc=org' @@ -62,5 +62,5 @@ roles: [] # TODO # Playbook to deploy NFS -- hosts: crans,!odlyd.adm.crans.org +- hosts: crans_server,!odlyd.adm.crans.org roles: [] # TODO diff --git a/hosts b/hosts index 22ea2eec1f77945ffc14db31764eb5d7c85ff0f1..ea6de7a20ed608550e1545b252dc4e3981d1cf1b 100644 --- a/hosts +++ b/hosts @@ -63,15 +63,101 @@ prometheus.adm.crans.org voyager.adm.crans.org boeing.adm.crans.org +[crans_unifi] +0b-1.borne.crans.org +0d-1.borne.crans.org +0g-2.borne.crans.org +0g-3.borne.crans.org +0g-4.borne.crans.org +0h-2.borne.crans.org +0h-3.borne.crans.org +0m-2.borne.crans.org +1g-1.borne.crans.org +1g-3.borne.crans.org +1g-4.borne.crans.org +1g-5.borne.crans.org +1h-2.borne.crans.org +1h-3.borne.crans.org +1i-2.borne.crans.org +1i-3.borne.crans.org +1j-2.borne.crans.org +1j-3.borne.crans.org +1m-1.borne.crans.org +1m-2.borne.crans.org +1m-5.borne.crans.org +2a-1.borne.crans.org +2b-3.borne.crans.org +2c-2.borne.crans.org +2c-3.borne.crans.org +2g-1.borne.crans.org +2g-3.borne.crans.org +2g-5.borne.crans.org +2h-2.borne.crans.org +2h-3.borne.crans.org +2i-2.borne.crans.org +2i-3.borne.crans.org +2j-2.borne.crans.org +2j-3.borne.crans.org +2m-2.borne.crans.org +3a-2.borne.crans.org +3b-3.borne.crans.org +3c-2.borne.crans.org +3c-3.borne.crans.org +3g-1.borne.crans.org +3g-5.borne.crans.org +3h-2.borne.crans.org +3h-3.borne.crans.org +3i-2.borne.crans.org +3i-3.borne.crans.org +3j-2.borne.crans.org +3m-2.borne.crans.org +3m-4.borne.crans.org +3m-5.borne.crans.org +4a-1.borne.crans.org +4a-2.borne.crans.org +4a-3.borne.crans.org +4b-1.borne.crans.org +4c-2.borne.crans.org +4c-3.borne.crans.org +4g-1.borne.crans.org +4g-3.borne.crans.org +4g-5.borne.crans.org +4h-2.borne.crans.org +4h-3.borne.crans.org +4i-2.borne.crans.org +4i-3.borne.crans.org +4j-1.borne.crans.org +4j-2.borne.crans.org +4j-3.borne.crans.org +4m-2.borne.crans.org +4m-4.borne.crans.org +5a-1.borne.crans.org +5b-1.borne.crans.org +5c-1.borne.crans.org +5g-1.borne.crans.org +5g-3.borne.crans.org +5m-4.borne.crans.org +5m-5.borne.crans.org +6a-1.borne.crans.org +6a-2.borne.crans.org +6c-1.borne.crans.org + [ovh_physical] #soyouz.adm.crans.org sputnik.adm.crans.org +# every server at crans +[crans_server:children] +crans_physical +crans_container +crans_vm + # everything at crans [crans:children] crans_physical crans_container crans_vm +crans_unifi # everything at ovh [ovh:children] @@ -90,3 +176,8 @@ crans_container [vm:children] crans_vm +# every server +[server:children] +crans_server +ovh + diff --git a/monitoring.yml b/monitoring.yml index 758457d527a81df60484df1a1b135a0b87af280a..8dfed4ddd59f46912020a720ad926c7ea00fcb53 100644 --- a/monitoring.yml +++ b/monitoring.yml @@ -5,17 +5,19 @@ # Prometheus targets.json prometheus_targets: - labels: {job: node} - targets: "{{ groups['crans'] | map('replace', '.org', '.org:9100') | list | sort }}" + targets: "{{ groups['server'] | map('replace', '.org', '.org:9100') | list | sort }}" - labels: {job: prometheus} targets: ['localhost:9090'] prometheus_ups_snmp_targets: - targets: [pulsar.adm.crans.org] + prometheus_unifi_snmp_targets: + - targets: "{{ groups['crans_unifi'] | list | sort }}" roles: - prometheus - prometheus-alertmanager # Monitor all hosts -- hosts: all +- hosts: server roles: - prometheus-node diff --git a/roles/prometheus/tasks/main.yml b/roles/prometheus/tasks/main.yml index 751f12790b0935d9ae3cde0aceb54ee68aa2bf77..7b4e12d5efa5973e7bf8d5b1ebbee9bff0cf0dc7 100644 --- a/roles/prometheus/tasks/main.yml +++ b/roles/prometheus/tasks/main.yml @@ -47,6 +47,12 @@ content: "{{ prometheus_ups_snmp_targets | to_nice_json }}" dest: /etc/prometheus/targets_ups_snmp.json +# 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 + - name: Activate prometheus service systemd: name: prometheus diff --git a/roles/prometheus/templates/prometheus/prometheus.yml.j2 b/roles/prometheus/templates/prometheus/prometheus.yml.j2 index 2831137f308b0e9821c0d64c51837ba2569f021a..94c134822a321af41cf4d3e78b8ce48956b8b2b4 100644 --- a/roles/prometheus/templates/prometheus/prometheus.yml.j2 +++ b/roles/prometheus/templates/prometheus/prometheus.yml.j2 @@ -44,6 +44,20 @@ scrape_configs: target_label: instance - target_label: __address__ replacement: 127.0.0.1:9116 + - job_name: unifi_snmp + file_sd_configs: + - files: + - '/etc/prometheus/targets_unifi_snmp.json' + metrics_path: /snmp + params: + module: [ubiquiti_unifi] + relabel_configs: + - source_labels: [__address__] + target_label: __param_target + - source_labels: [__param_target] + target_label: instance + - target_label: __address__ + replacement: 127.0.0.1:9116 - job_name: django scheme: https static_configs: