diff --git a/roles/node_exporter/files/node-exporter-run-textfile-collector.sh b/roles/node_exporter/files/node-exporter-run-textfile-collector.sh new file mode 100755 index 0000000..2b3d297 --- /dev/null +++ b/roles/node_exporter/files/node-exporter-run-textfile-collector.sh @@ -0,0 +1,21 @@ +#!/bin/sh + +set -eu + +umask 022 + +if [ "$(uname -s)" = "OpenBSD" ]; then + OUTDIR="/var/db/node-exporter" +else + OUTDIR="/var/lib/prometheus/node-exporter" +fi + +for script in /usr/local/libexec/node-exporter/*; do + [ -x "$script" ] || continue + target="${OUTDIR}/$(basename "$script")" + if "$script" > "${target}.tmp" ; then + mv "${target}.tmp" "${target}.prom" + else + rm -f "${target}.tmp" + fi +done diff --git a/roles/node_exporter/tasks/main.yml b/roles/node_exporter/tasks/main.yml index fffda67..1e35c32 100644 --- a/roles/node_exporter/tasks/main.yml +++ b/roles/node_exporter/tasks/main.yml @@ -40,6 +40,28 @@ group: _nodeexporter when: ansible_os_family == "OpenBSD" +- name: Create directory for textfile collector scripts + ansible.builtin.file: + path: /usr/local/libexec/node-exporter + state: directory + mode: 0755 + owner: root + group: "{{ ansible_wheel }}" + +- name: Add script for running textfile collector scripts + ansible.builtin.copy: + dest: /usr/local/sbin/node-exporter-run-textfile-collector + src: node-exporter-run-textfile-collector.sh + mode: 0755 + owner: root + group: "{{ ansible_wheel }}" + +- name: Add cron job for running textfile collector scripts + ansible.builtin.cron: + name: node-exporter-run-textfile-collector + job: /usr/local/sbin/node-exporter-run-textfile-collector + minute: "*/10" + - name: Modify config ansible.builtin.lineinfile: path: /etc/default/prometheus-node-exporter