From 703771727f35959e3262d2ae8c35c57681d6ece0 Mon Sep 17 00:00:00 2001
From: Thomas Schneider <qsx@chaotikum.eu>
Date: Sun, 14 Nov 2021 18:25:09 +0100
Subject: [PATCH] node_exporter: Gentoo configuration support

---
 node_exporter/handlers/main.yml          | 11 ++++-
 node_exporter/tasks/main.yml             | 57 +++++++++++++++++++++++-
 node_exporter/templates/override.conf.j2 |  3 ++
 3 files changed, 68 insertions(+), 3 deletions(-)
 create mode 100644 node_exporter/templates/override.conf.j2

diff --git a/node_exporter/handlers/main.yml b/node_exporter/handlers/main.yml
index f25d9e7..b61bd54 100644
--- a/node_exporter/handlers/main.yml
+++ b/node_exporter/handlers/main.yml
@@ -1,6 +1,15 @@
 ---
 
-- name: Restart node_exporter
+- name: Restart prometheus-node-exporter
   systemd:
     name: prometheus-node-exporter.service
     state: restarted
+
+- name: Restart node_exporter
+  systemd:
+    name: node_exporter.service
+    state: restarted
+
+- name: Reload systemd
+  systemd:
+    daemon_reload: true
diff --git a/node_exporter/tasks/main.yml b/node_exporter/tasks/main.yml
index 0f2fccc..22f8da9 100644
--- a/node_exporter/tasks/main.yml
+++ b/node_exporter/tasks/main.yml
@@ -4,7 +4,9 @@
   apt:
     name: prometheus-node-exporter
     state: present
-  when: ansible_distribution_major_version|int >= 10
+  when:
+    - ansible_distribution_major_version|int >= 10
+    - ansible_distribution_file_variety == "Debian"
   tags:
     - prometheus
     - prometheus-exporter
@@ -14,7 +16,19 @@
     name: prometheus-node-exporter
     state: present
     default_release: stretch-backports
-  when: ansible_distribution_major_version|int == 9
+  when:
+    - ansible_distribution_major_version|int == 9
+    - ansible_distribution_file_variety == "Debian"
+  tags:
+    - prometheus
+    - prometheus-exporter
+
+- name: Install node_exporter
+  portage:
+    name: app-metrics/node_exporter
+    state: present
+  when:
+    - ansible_distribution == "Gentoo"
   tags:
     - prometheus
     - prometheus-exporter
@@ -24,7 +38,35 @@
     src: prometheus-node-exporter.j2
     dest: /etc/default/prometheus-node-exporter
   notify:
+    - Restart prometheus-node-exporter
+  when:
+    - ansible_distribution_file_variety == "Debian"
+  tags:
+    - prometheus
+    - prometheus-exporter
+    - config
+
+- name: Create systemd unit override directory
+  file:
+    path: /etc/systemd/system/node_exporter.service.d
+    state: directory
+    owner: root
+    group: root
+    mode: "0755"
+  tags:
+    - prometheus
+    - prometheus-exporter
+    - config
+
+- name: Configure node_exporter
+  template:
+    src: override.conf.j2
+    dest: /etc/systemd/system/node_exporter.service.d/override.conf
+  notify:
+    - Reload systemd
     - Restart node_exporter
+  when:
+    - ansible_distribution == "Gentoo"
   tags:
     - prometheus
     - prometheus-exporter
@@ -39,3 +81,14 @@
     - prometheus
     - prometheus-exporter
     - config
+
+- name: Enable and start node_exporter
+  systemd:
+    name: node_exporter.service
+    state: started
+    enabled: true
+  when:
+    - ansible_distribution == "Gentoo"
+  tags:
+    - prometheus
+    - prometheus-exporter
diff --git a/node_exporter/templates/override.conf.j2 b/node_exporter/templates/override.conf.j2
new file mode 100644
index 0000000..1101ef3
--- /dev/null
+++ b/node_exporter/templates/override.conf.j2
@@ -0,0 +1,3 @@
+[Service]
+ExecStart=
+ExecStart=/usr/sbin/node_exporter {{ node_exporter_args }}
-- 
GitLab