You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ansible/roles/prometheus-node-exporter/tasks/main.yml

56 lines
1.5 KiB
YAML

---
- name: Install Prometheus Node exporter
apt:
name:
- prometheus-node-exporter
state: latest
update_cache: true
install_recommends: false # Do not install smartmontools
register: apt_result
retries: 3
until: apt_result is succeeded
# TODO: add auth
#
# Create the file --web.config=/etc/node_exporter/config.yaml
# and add --web.config=/etc/node_exporter/config.yaml to
# the args in /etc/default/prometheus-node-exporter
- name: Setup the arguments for node-exporter
template:
src: prometheus-node-exporter
dest: /etc/default/prometheus-node-exporter
owner: root
group: root
mode: '0644'
notify: Restart prometheus-node-exporter
vars:
args:
- name: web.listen-address
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 }}"