Add playbooks/install-node-exporter.yml

This commit is contained in:
2025-07-22 01:25:37 +00:00
parent 79cb40eaee
commit 6ccd60b4a3

View File

@@ -0,0 +1,68 @@
- name: Install Node Exporter from binary
hosts: all
become: true
vars:
node_exporter_version: "1.9.1"
node_exporter_user: "node_exporter"
node_exporter_listen: "0.0.0.0:9100"
node_exporter_bin_dir: "/usr/local/bin"
node_exporter_service_path: "/etc/systemd/system/node_exporter.service"
tasks:
- name: Ensure node_exporter user exists
user:
name: "{{ node_exporter_user }}"
shell: /usr/sbin/nologin
system: true
create_home: false
- name: Download Node Exporter archive
get_url:
url: "https://github.com/prometheus/node_exporter/releases/download/v{{ node_exporter_version }}/node_exporter-{{ node_exporter_version }}.linux-amd64.tar.gz"
dest: "/tmp/node_exporter.tar.gz"
mode: "0644"
- name: Extract Node Exporter binary
unarchive:
src: "/tmp/node_exporter.tar.gz"
dest: "/tmp/"
remote_src: true
- name: Install binary
copy:
src: "/tmp/node_exporter-{{ node_exporter_version }}.linux-amd64/node_exporter"
dest: "{{ node_exporter_bin_dir }}/node_exporter"
mode: "0755"
owner: root
group: root
- name: Create systemd service
copy:
dest: "{{ node_exporter_service_path }}"
content: |
[Unit]
Description=Prometheus Node Exporter
After=network.target
[Service]
User={{ node_exporter_user }}
ExecStart={{ node_exporter_bin_dir }}/node_exporter --web.listen-address={{ node_exporter_listen }}
Restart=always
[Install]
WantedBy=multi-user.target
notify: Restart node_exporter
- name: Enable and start node_exporter
systemd:
name: node_exporter
enabled: true
state: started
daemon_reload: true
handlers:
- name: Restart node_exporter
systemd:
name: node_exporter
state: restarted