117 lines
3.1 KiB
YAML
117 lines
3.1 KiB
YAML
---
|
|
- name: Install Prometheus Node Exporter
|
|
hosts: all
|
|
become: yes
|
|
|
|
tasks:
|
|
- name: Install dependencies
|
|
apt:
|
|
name:
|
|
- libffi-dev
|
|
- python3
|
|
- python3-pip
|
|
- python3-setuptools
|
|
state: latest
|
|
update_cache: true
|
|
|
|
- name: Upgrade pip
|
|
pip:
|
|
name: pip
|
|
state: latest
|
|
|
|
- name: Install required pip packages
|
|
pip:
|
|
name:
|
|
- pyopenssl
|
|
state: present
|
|
|
|
- name: Create node_exporter group
|
|
group:
|
|
name: "node_exporter"
|
|
state: present
|
|
system: true
|
|
|
|
- name: Create node_exporter user
|
|
user:
|
|
name: "node_exporter"
|
|
group: "node_exporter"
|
|
comment: "Node Exporter"
|
|
shell: /bin/false
|
|
home: "/usr/sbin/nologin"
|
|
system: true
|
|
state: present
|
|
|
|
- name: Create config directory
|
|
file:
|
|
path: "/etc/node_exporter"
|
|
state: directory
|
|
owner: "node_exporter"
|
|
group: "node_exporter"
|
|
|
|
- name: Generate an OpenSSL private key
|
|
openssl_privatekey:
|
|
path: /etc/node_exporter/node_exporter.key
|
|
owner: "node_exporter"
|
|
group: "node_exporter"
|
|
|
|
- name: Generate an OpenSSL Certificate Signing Request
|
|
openssl_csr:
|
|
path: /etc/node_exporter/node_exporter.csr
|
|
privatekey_path: /etc/node_exporter/node_exporter.key
|
|
common_name: localhost
|
|
owner: "node_exporter"
|
|
group: "node_exporter"
|
|
|
|
- name: Generate a Self Signed OpenSSL certificate
|
|
openssl_certificate:
|
|
path: /etc/node_exporter/node_exporter.crt
|
|
privatekey_path: /etc/node_exporter/node_exporter.key
|
|
csr_path: /etc/node_exporter/node_exporter.csr
|
|
provider: selfsigned
|
|
owner: "node_exporter"
|
|
group: "node_exporter"
|
|
|
|
- name: Copy config
|
|
template:
|
|
src: config.yml.j2
|
|
dest: /etc/node_exporter/config.yml
|
|
owner: "node_exporter"
|
|
group: "node_exporter"
|
|
mode: 0755
|
|
|
|
- name: Download and unzip Node Exporter
|
|
unarchive:
|
|
src: "https://github.com/prometheus/node_exporter/releases/download/v{{ node_exporter_version }}/node_exporter-{{ node_exporter_version }}.linux-amd64.tar.gz"
|
|
dest: /tmp/
|
|
remote_src: yes
|
|
validate_certs: no
|
|
|
|
- name: Move the binary to the installation directory
|
|
copy:
|
|
src: "/tmp/node_exporter-{{ node_exporter_version }}.linux-amd64/node_exporter"
|
|
dest: "/usr/local/bin/node_exporter"
|
|
owner: "node_exporter"
|
|
group: "node_exporter"
|
|
mode: 0755
|
|
remote_src: true
|
|
|
|
- name: Remove archive
|
|
file:
|
|
path: /tmp/node_exporter-{{ node_exporter_version }}.linux-amd64/
|
|
state: absent
|
|
|
|
- name: Install service
|
|
template:
|
|
src: node_exporter.service.j2
|
|
dest: /etc/systemd/system/node_exporter.service
|
|
owner: root
|
|
group: root
|
|
mode: 0755
|
|
|
|
- name: Restart service and pickup changes
|
|
systemd:
|
|
state: restarted
|
|
daemon_reload: yes
|
|
name: node_exporter.service
|
|
enabled: yes
|