Update 2 files

- /roles/base_setup/tasks/main.yml
- /roles/base_setup/handlers/main.yml
This commit is contained in:
Administrator 2025-11-26 09:07:28 +00:00
parent 107c668628
commit 9108da01b1
2 changed files with 32 additions and 4 deletions

View File

@ -11,6 +11,7 @@
state: restarted state: restarted
daemon_reload: yes daemon_reload: yes
become: yes become: yes
tags: node_exporter
- name: restart docker - name: restart docker
systemd: systemd:

View File

@ -211,22 +211,26 @@
# ========== Node Exporter Installation ========== # ========== Node Exporter Installation ==========
- name: Create node_exporter system user - name: Create node_exporter system user
tags: node_exporter
user: user:
name: node_exporter name: node_exporter
system: yes system: yes
shell: /usr/sbin/nologin shell: /bin/false
create_home: no create_home: no
become: yes become: yes
- name: Download node_exporter - name: Download node_exporter
tags: node_exporter
get_url: 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 dest: /tmp/node_exporter.tar.gz
mode: '0644' mode: '0644'
timeout: 60 timeout: 60
when: ansible_architecture == "x86_64" or ansible_architecture == "aarch64"
become: yes become: yes
- name: Create temporary extraction directory - name: Create temporary extraction directory
tags: node_exporter
file: file:
path: /tmp/node_exporter_temp path: /tmp/node_exporter_temp
state: directory state: directory
@ -234,6 +238,7 @@
become: yes become: yes
- name: Extract node_exporter - name: Extract node_exporter
tags: node_exporter
unarchive: unarchive:
src: /tmp/node_exporter.tar.gz src: /tmp/node_exporter.tar.gz
dest: /tmp/node_exporter_temp dest: /tmp/node_exporter_temp
@ -242,6 +247,7 @@
become: yes become: yes
- name: Install node_exporter binary - name: Install node_exporter binary
tags: node_exporter
copy: copy:
src: /tmp/node_exporter_temp/node_exporter-1.8.2.linux-amd64/node_exporter src: /tmp/node_exporter_temp/node_exporter-1.8.2.linux-amd64/node_exporter
dest: /usr/local/bin/node_exporter dest: /usr/local/bin/node_exporter
@ -253,6 +259,7 @@
notify: restart node_exporter notify: restart node_exporter
- name: Clean up temporary files - name: Clean up temporary files
tags: node_exporter
file: file:
path: "{{ item }}" path: "{{ item }}"
state: absent state: absent
@ -262,6 +269,7 @@
become: yes become: yes
- name: Create textfile collector directory - name: Create textfile collector directory
tags: node_exporter
file: file:
path: /var/lib/node_exporter/textfile_collector path: /var/lib/node_exporter/textfile_collector
state: directory state: directory
@ -271,6 +279,7 @@
become: yes become: yes
- name: Deploy node_exporter systemd service - name: Deploy node_exporter systemd service
tags: node_exporter
copy: copy:
content: | content: |
[Unit] [Unit]
@ -292,7 +301,8 @@
--collector.loadavg \ --collector.loadavg \
--collector.time \ --collector.time \
--collector.textfile.directory=/var/lib/node_exporter/textfile_collector \ --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.listen-address=0.0.0.0:9100 \
--web.telemetry-path=/metrics --web.telemetry-path=/metrics
Restart=always Restart=always
@ -319,6 +329,7 @@
notify: restart node_exporter notify: restart node_exporter
- name: Start and enable node_exporter - name: Start and enable node_exporter
tags: node_exporter
systemd: systemd:
name: node_exporter name: node_exporter
state: started state: started
@ -327,6 +338,7 @@
become: yes become: yes
- name: Wait for node_exporter to start - name: Wait for node_exporter to start
tags: node_exporter
wait_for: wait_for:
host: localhost host: localhost
port: 9100 port: 9100
@ -336,6 +348,7 @@
become: yes become: yes
- name: Verify node_exporter is responding - name: Verify node_exporter is responding
tags: node_exporter
uri: uri:
url: http://localhost:9100/metrics url: http://localhost:9100/metrics
status_code: 200 status_code: 200
@ -344,11 +357,13 @@
become: yes become: yes
- name: Show node_exporter status - name: Show node_exporter status
tags: node_exporter
debug: debug:
msg: "Node Exporter is running and responding on port 9100" msg: "Node Exporter is running and responding on port 9100"
when: node_exporter_check.status == 200 when: node_exporter_check.status == 200
- name: Allow port 9100 in ufw (if enabled) - name: Allow port 9100 in ufw (if enabled)
tags: node_exporter
ufw: ufw:
rule: allow rule: allow
port: 9100 port: 9100
@ -357,4 +372,16 @@
when: when:
- ansible_facts.services["ufw.service"] is defined - ansible_facts.services["ufw.service"] is defined
- ansible_facts.services["ufw.service"]["state"] == "running" - ansible_facts.services["ufw.service"]["state"] == "running"
become: yes 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