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