Add playbooks/install-node-exporter.yml
This commit is contained in:
79
playbooks/install-node-exporter.yml
Normal file
79
playbooks/install-node-exporter.yml
Normal file
@@ -0,0 +1,79 @@
|
||||
- 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"
|
||||
node_exporter_arch_map:
|
||||
x86_64: "amd64"
|
||||
aarch64: "arm64"
|
||||
armv7l: "armv7"
|
||||
node_exporter_arch: "{{ node_exporter_arch_map[ansible_architecture] | default('amd64') }}"
|
||||
|
||||
tasks:
|
||||
- name: Debug detected architecture
|
||||
debug:
|
||||
msg: "Detected architecture: {{ ansible_architecture }} -> using {{ node_exporter_arch }} build"
|
||||
|
||||
- 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-{{ node_exporter_arch }}.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: Move Node Exporter binary into place
|
||||
command: mv /tmp/node_exporter-{{ node_exporter_version }}.linux-{{ node_exporter_arch }}/node_exporter {{ node_exporter_bin_dir }}/node_exporter
|
||||
|
||||
- name: Set binary permissions
|
||||
file:
|
||||
path: "{{ 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
|
Reference in New Issue
Block a user