summaryrefslogtreecommitdiffstats
path: root/roles/prometheus-node-exporter
diff options
context:
space:
mode:
authorAhmed Abdelhalim <[email protected]>2026-03-02 22:39:33 +0100
committerAhmed Abdelhalim <[email protected]>2026-03-02 23:01:26 +0100
commita61eec647a90d1cf4584aca16a591e25056fbcb2 (patch)
treeab301ebab047bea7486a6a73ddf2e2af7325243a /roles/prometheus-node-exporter
parent8b766e87a0299836ed602e3936fbef9a6b403193 (diff)
Create specific prometheus node exporter role
Diffstat (limited to 'roles/prometheus-node-exporter')
-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
6 files changed, 58 insertions, 0 deletions
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"