summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--configure.yml3
-rw-r--r--host_vars/rpi5.local.ymlbin1896 -> 2061 bytes
-rw-r--r--molecule/archlinux-gnome/converge.yml1
-rw-r--r--molecule/archlinux/converge.yml1
-rw-r--r--molecule/debian/converge.yml1
-rw-r--r--molecule/raspberrypi/converge.yml1
-rw-r--r--molecule/ubuntu/converge.yml1
-rw-r--r--roles/prometheus-node-exporter/defaults/main.yml3
-rw-r--r--roles/prometheus-node-exporter/handlers/main.yml6
-rw-r--r--roles/prometheus-node-exporter/meta/main.yml17
-rw-r--r--roles/prometheus-node-exporter/tasks/main.yml28
-rw-r--r--roles/prometheus-node-exporter/vars/archlinux.yml2
-rw-r--r--roles/prometheus-node-exporter/vars/debian.yml2
13 files changed, 66 insertions, 0 deletions
diff --git a/configure.yml b/configure.yml
index e1fc93e2..e8d9b49b 100644
--- a/configure.yml
+++ b/configure.yml
@@ -47,6 +47,7 @@
- role: "microsoft-teams"
- role: "gpu_driver"
- role: "steam"
+ - role: "prometheus-node-exporter"
- name: "Ubuntu configure"
gather_facts: true
@@ -80,6 +81,7 @@
- role: "obsidian"
- role: "microsoft-teams"
- role: "gnome-calendar"
+ - role: "prometheus-node-exporter"
- name: "Raspberry Pi configure"
gather_facts: true
@@ -105,5 +107,6 @@
- role: "wg_portal"
- role: "pihole"
- role: "prometheus"
+ - role: "prometheus-node-exporter"
- role: "grafana"
- role: "neomutt"
diff --git a/host_vars/rpi5.local.yml b/host_vars/rpi5.local.yml
index ae59bfa1..6ce33273 100644
--- a/host_vars/rpi5.local.yml
+++ b/host_vars/rpi5.local.yml
Binary files differ
diff --git a/molecule/archlinux-gnome/converge.yml b/molecule/archlinux-gnome/converge.yml
index 8f939dd0..4f53ebd1 100644
--- a/molecule/archlinux-gnome/converge.yml
+++ b/molecule/archlinux-gnome/converge.yml
@@ -101,6 +101,7 @@
- role: "usbutils"
- role: "nginx"
- role: "prometheus"
+ - role: "prometheus-node-exporter"
- role: "grafana"
- role: "bluetui"
- role: "wlctl"
diff --git a/molecule/archlinux/converge.yml b/molecule/archlinux/converge.yml
index 296d0dec..543ec1e1 100644
--- a/molecule/archlinux/converge.yml
+++ b/molecule/archlinux/converge.yml
@@ -102,4 +102,5 @@
- role: "usbutils"
- role: "nginx"
- role: "prometheus"
+ - role: "prometheus-node-exporter"
- role: "grafana"
diff --git a/molecule/debian/converge.yml b/molecule/debian/converge.yml
index 5fd2c9c3..019348e9 100644
--- a/molecule/debian/converge.yml
+++ b/molecule/debian/converge.yml
@@ -88,6 +88,7 @@
- role: "ansible"
- role: "nginx"
- role: "prometheus"
+ - role: "prometheus-node-exporter"
- role: "grafana"
- role: "gnome"
- role: "gnome-calendar"
diff --git a/molecule/raspberrypi/converge.yml b/molecule/raspberrypi/converge.yml
index 72c3962d..de126c52 100644
--- a/molecule/raspberrypi/converge.yml
+++ b/molecule/raspberrypi/converge.yml
@@ -85,6 +85,7 @@
- role: "wg_portal"
- role: "pihole"
- role: "prometheus"
+ - role: "prometheus-node-exporter"
- role: "grafana"
- role: "gnome"
- role: "gnome-calendar"
diff --git a/molecule/ubuntu/converge.yml b/molecule/ubuntu/converge.yml
index d432e86d..4045abde 100644
--- a/molecule/ubuntu/converge.yml
+++ b/molecule/ubuntu/converge.yml
@@ -77,6 +77,7 @@
- role: "ansible"
- role: "nginx"
- role: "prometheus"
+ - role: "prometheus-node-exporter"
- role: "grafana"
- role: "gnome"
- role: "gnome-calendar"
diff --git a/roles/prometheus-node-exporter/defaults/main.yml b/roles/prometheus-node-exporter/defaults/main.yml
new file mode 100644
index 00000000..d15999f0
--- /dev/null
+++ b/roles/prometheus-node-exporter/defaults/main.yml
@@ -0,0 +1,3 @@
+---
+node_exporter_host: "0.0.0.0"
+node_exporter_port: 9100
diff --git a/roles/prometheus-node-exporter/handlers/main.yml b/roles/prometheus-node-exporter/handlers/main.yml
new file mode 100644
index 00000000..4e995e59
--- /dev/null
+++ b/roles/prometheus-node-exporter/handlers/main.yml
@@ -0,0 +1,6 @@
+---
+- name: "Restart node-exporter"
+ become: true
+ ansible.builtin.systemd_service:
+ name: "prometheus-node-exporter"
+ state: "restarted"
diff --git a/roles/prometheus-node-exporter/meta/main.yml b/roles/prometheus-node-exporter/meta/main.yml
new file mode 100644
index 00000000..c94a573a
--- /dev/null
+++ b/roles/prometheus-node-exporter/meta/main.yml
@@ -0,0 +1,17 @@
+---
+dependencies: []
+galaxy_info:
+ author: "a14m"
+ description: "Install and configure Prometheus node exporter"
+ license: "MIT"
+ min_ansible_version: "2.18"
+ platforms:
+ - name: "ArchLinux"
+ versions:
+ - "all"
+ - name: "Ubuntu"
+ versions:
+ - "noble"
+ - name: "Debian"
+ versions:
+ - "bookworm"
diff --git a/roles/prometheus-node-exporter/tasks/main.yml b/roles/prometheus-node-exporter/tasks/main.yml
new file mode 100644
index 00000000..dc222e3e
--- /dev/null
+++ b/roles/prometheus-node-exporter/tasks/main.yml
@@ -0,0 +1,28 @@
+---
+- name: "Include OS-specific variables"
+ ansible.builtin.include_vars: "{{ ansible_facts['os_family'] | lower }}.yml"
+
+- name: "Ensure prometheus-node-exporter is installed"
+ become: true
+ ansible.builtin.package:
+ name: "prometheus-node-exporter"
+ state: "present"
+
+- name: "Configure node-exporter host/port via environment file"
+ become: true
+ ansible.builtin.copy:
+ content: |
+ NODE_EXPORTER_ARGS="
+ --web.listen-address={{ node_exporter_host }}:{{ node_exporter_port }}
+ --collector.systemd
+ "
+ dest: "{{ node_exporter_env_file }}"
+ mode: "0644"
+ notify: "Restart node-exporter"
+
+- name: "Start and enable prometheus-node-exporter"
+ become: true
+ ansible.builtin.systemd_service:
+ name: "prometheus-node-exporter"
+ state: "started"
+ enabled: true
diff --git a/roles/prometheus-node-exporter/vars/archlinux.yml b/roles/prometheus-node-exporter/vars/archlinux.yml
new file mode 100644
index 00000000..e550c5da
--- /dev/null
+++ b/roles/prometheus-node-exporter/vars/archlinux.yml
@@ -0,0 +1,2 @@
+---
+node_exporter_env_file: "/etc/conf.d/prometheus-node-exporter"
diff --git a/roles/prometheus-node-exporter/vars/debian.yml b/roles/prometheus-node-exporter/vars/debian.yml
new file mode 100644
index 00000000..dc59b0d6
--- /dev/null
+++ b/roles/prometheus-node-exporter/vars/debian.yml
@@ -0,0 +1,2 @@
+---
+node_exporter_env_file: "/etc/default/prometheus-node-exporter"