diff --git a/books/monitoring.yml b/books/monitoring.yml index 5b27479..133dd87 100644 --- a/books/monitoring.yml +++ b/books/monitoring.yml @@ -1,6 +1,6 @@ #!/usr/bin/env ansible-playbook --- -- hosts: prometheus_server +- hosts: prometheus_servers roles: - prometheus diff --git a/group_vars/all/vars.yml b/group_vars/all/vars.yml index f1e582e..07d86a5 100644 --- a/group_vars/all/vars.yml +++ b/group_vars/all/vars.yml @@ -2,3 +2,6 @@ # Use python 3 ansible_python_interpreter: /usr/bin/python3 dns_resolve_server: 1.1.1.1 + +# Default prometheus serveur, to overide in host_vars or something +appointed_prometheus_server: hindley diff --git a/hosts b/hosts index 2b5c2c9..9b60703 100644 --- a/hosts +++ b/hosts @@ -30,6 +30,8 @@ all: tests: hosts: rossum: + azerty: + hellman: vpn: hosts: azerty: @@ -40,7 +42,7 @@ all: apt_proxies: hosts: hindley: - prometheus_server: + prometheus_servers: hosts: hindley: matrix: diff --git a/roles/prometheus-node-exporter/tasks/main.yml b/roles/prometheus-node-exporter/tasks/main.yml index 444a748..1c3662f 100644 --- a/roles/prometheus-node-exporter/tasks/main.yml +++ b/roles/prometheus-node-exporter/tasks/main.yml @@ -30,3 +30,26 @@ value: "{{ lan_address }}:9100" # - name: web.config # value: /etc/node_exporter/config.yaml + +# Add the node to the server targets + +- name: Get the list of targets of the server + slurp: + src: /etc/prometheus/node-targets.json + register: server_target_file + delegate_to: "{{ appointed_prometheus_server }}" + +- name: Set target variable + set_fact: + server_target: "{{ server_target_file['content'] | b64decode | from_json }}" + +- name: Add the node to the targets + set_fact: + server_target: "[{{ server_target[0] | combine({'targets': [lan_address]}, list_merge='append_rp') }}]" + +- name: Put the new target list + copy: + content: "{{ server_target | to_nice_json }}" + dest: /etc/prometheus/node-targets.json + delegate_to: "{{ appointed_prometheus_server }}" +