From a61eec647a90d1cf4584aca16a591e25056fbcb2 Mon Sep 17 00:00:00 2001 From: Ahmed Abdelhalim Date: Mon, 2 Mar 2026 22:39:33 +0100 Subject: Create specific prometheus node exporter role --- roles/prometheus-node-exporter/defaults/main.yml | 3 +++ roles/prometheus-node-exporter/handlers/main.yml | 6 +++++ roles/prometheus-node-exporter/meta/main.yml | 17 ++++++++++++++ roles/prometheus-node-exporter/tasks/main.yml | 28 +++++++++++++++++++++++ roles/prometheus-node-exporter/vars/archlinux.yml | 2 ++ roles/prometheus-node-exporter/vars/debian.yml | 2 ++ 6 files changed, 58 insertions(+) create mode 100644 roles/prometheus-node-exporter/defaults/main.yml create mode 100644 roles/prometheus-node-exporter/handlers/main.yml create mode 100644 roles/prometheus-node-exporter/meta/main.yml create mode 100644 roles/prometheus-node-exporter/tasks/main.yml create mode 100644 roles/prometheus-node-exporter/vars/archlinux.yml create mode 100644 roles/prometheus-node-exporter/vars/debian.yml (limited to 'roles/prometheus-node-exporter') 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" -- cgit v1.2.3