From 9108da01b1cd4c7f949ecb610f9a88da1f3899e7 Mon Sep 17 00:00:00 2001 From: Administrator Date: Wed, 26 Nov 2025 09:07:28 +0000 Subject: [PATCH] Update 2 files - /roles/base_setup/tasks/main.yml - /roles/base_setup/handlers/main.yml --- roles/base_setup/handlers/main.yml | 1 + roles/base_setup/tasks/main.yml | 35 ++++++++++++++++++++++++++---- 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/roles/base_setup/handlers/main.yml b/roles/base_setup/handlers/main.yml index af77f86..a005958 100644 --- a/roles/base_setup/handlers/main.yml +++ b/roles/base_setup/handlers/main.yml @@ -11,6 +11,7 @@ state: restarted daemon_reload: yes become: yes + tags: node_exporter - name: restart docker systemd: diff --git a/roles/base_setup/tasks/main.yml b/roles/base_setup/tasks/main.yml index 367b515..316ef18 100644 --- a/roles/base_setup/tasks/main.yml +++ b/roles/base_setup/tasks/main.yml @@ -211,22 +211,26 @@ # ========== Node Exporter Installation ========== - name: Create node_exporter system user + tags: node_exporter user: name: node_exporter system: yes - shell: /usr/sbin/nologin + shell: /bin/false create_home: no become: yes - name: Download node_exporter + tags: node_exporter get_url: - url: "https://github.com/prometheus/node_exporter/releases/download/v1.8.2/node_exporter-1.8.2.linux-amd64.tar.gz" + url: "https://github.com/prometheus/node_exporter/releases/download/v1.8.2/node_exporter-1.8.2.linux-{{ ansible_architecture }}.tar.gz" dest: /tmp/node_exporter.tar.gz mode: '0644' timeout: 60 + when: ansible_architecture == "x86_64" or ansible_architecture == "aarch64" become: yes - name: Create temporary extraction directory + tags: node_exporter file: path: /tmp/node_exporter_temp state: directory @@ -234,6 +238,7 @@ become: yes - name: Extract node_exporter + tags: node_exporter unarchive: src: /tmp/node_exporter.tar.gz dest: /tmp/node_exporter_temp @@ -242,6 +247,7 @@ become: yes - name: Install node_exporter binary + tags: node_exporter copy: src: /tmp/node_exporter_temp/node_exporter-1.8.2.linux-amd64/node_exporter dest: /usr/local/bin/node_exporter @@ -253,6 +259,7 @@ notify: restart node_exporter - name: Clean up temporary files + tags: node_exporter file: path: "{{ item }}" state: absent @@ -262,6 +269,7 @@ become: yes - name: Create textfile collector directory + tags: node_exporter file: path: /var/lib/node_exporter/textfile_collector state: directory @@ -271,6 +279,7 @@ become: yes - name: Deploy node_exporter systemd service + tags: node_exporter copy: content: | [Unit] @@ -292,7 +301,8 @@ --collector.loadavg \ --collector.time \ --collector.textfile.directory=/var/lib/node_exporter/textfile_collector \ - --collector.disable=arp,netdev \ + --no-collector.arp \ + --no-collector.netdev \ --web.listen-address=0.0.0.0:9100 \ --web.telemetry-path=/metrics Restart=always @@ -319,6 +329,7 @@ notify: restart node_exporter - name: Start and enable node_exporter + tags: node_exporter systemd: name: node_exporter state: started @@ -327,6 +338,7 @@ become: yes - name: Wait for node_exporter to start + tags: node_exporter wait_for: host: localhost port: 9100 @@ -336,6 +348,7 @@ become: yes - name: Verify node_exporter is responding + tags: node_exporter uri: url: http://localhost:9100/metrics status_code: 200 @@ -344,11 +357,13 @@ become: yes - name: Show node_exporter status + tags: node_exporter debug: msg: "Node Exporter is running and responding on port 9100" when: node_exporter_check.status == 200 - name: Allow port 9100 in ufw (if enabled) + tags: node_exporter ufw: rule: allow port: 9100 @@ -357,4 +372,16 @@ when: - ansible_facts.services["ufw.service"] is defined - ansible_facts.services["ufw.service"]["state"] == "running" - become: yes \ No newline at end of file + become: yes + +- name: Show node_exporter status + tags: node_exporter + debug: + msg: "Node Exporter is running and responding on port 9100" + when: node_exporter_check.status == 200 + +- name: Show node_exporter error + tags: node_exporter + debug: + msg: "Node Exporter check failed with status: {{ node_exporter_check.status }}" + when: node_exporter_check.status != 200 \ No newline at end of file