55 lines
1.5 KiB
YAML
55 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 }}"
|
|
|