|
@@ -0,0 +1,66 @@
|
|
|
|
|
+---
|
|
|
|
|
+- name: Download Node Exporter binary
|
|
|
|
|
+ get_url:
|
|
|
|
|
+ url: https://github.com/prometheus/node_exporter/releases/download/v1.6.0/node_exporter-1.6.0.linux-amd64.tar.gz
|
|
|
|
|
+ dest: /tmp/node_exporter.tar.gz
|
|
|
|
|
+ mode: '0644'
|
|
|
|
|
+
|
|
|
|
|
+- name: Extract Node Exporter
|
|
|
|
|
+ unarchive:
|
|
|
|
|
+ src: /tmp/node_exporter.tar.gz
|
|
|
|
|
+ dest: /opt
|
|
|
|
|
+ remote_src: yes
|
|
|
|
|
+ creates: /opt/node_exporter-1.6.0.linux-amd64
|
|
|
|
|
+
|
|
|
|
|
+- name: Link Node Exporter
|
|
|
|
|
+ file:
|
|
|
|
|
+ src: /opt/node_exporter-1.6.0.linux-amd64
|
|
|
|
|
+ dest: /opt/node_exporter
|
|
|
|
|
+ state: link
|
|
|
|
|
+
|
|
|
|
|
+- name: Create node_exporter user
|
|
|
|
|
+ user:
|
|
|
|
|
+ name: node_exporter
|
|
|
|
|
+ system: yes
|
|
|
|
|
+ shell: /bin/false
|
|
|
|
|
+
|
|
|
|
|
+- name: Create directories
|
|
|
|
|
+ file:
|
|
|
|
|
+ path: /var/lib/node_exporter
|
|
|
|
|
+ state: directory
|
|
|
|
|
+ owner: node_exporter
|
|
|
|
|
+ group: node_exporter
|
|
|
|
|
+ mode: '0755'
|
|
|
|
|
+
|
|
|
|
|
+- name: Copy Node Exporter service
|
|
|
|
|
+ template:
|
|
|
|
|
+ src: node_exporter.service.j2
|
|
|
|
|
+ dest: /etc/systemd/system/node_exporter.service
|
|
|
|
|
+ owner: root
|
|
|
|
|
+ group: root
|
|
|
|
|
+ mode: '0644'
|
|
|
|
|
+
|
|
|
|
|
+- name: Enable and start Node Exporter
|
|
|
|
|
+ systemd:
|
|
|
|
|
+ name: node_exporter
|
|
|
|
|
+ daemon_reload: yes
|
|
|
|
|
+ enabled: yes
|
|
|
|
|
+ state: started
|
|
|
|
|
+
|
|
|
|
|
+- name: Register Node-exporter to Consul
|
|
|
|
|
+ uri:
|
|
|
|
|
+ url: "http://{{ consul_server }}:8500/v1/agent/service/register"
|
|
|
|
|
+ method: PUT
|
|
|
|
|
+ body_format: json
|
|
|
|
|
+ body:
|
|
|
|
|
+ name: "node-exporter-{{ inventory_hostname }}"
|
|
|
|
|
+ id: "node-exporter-{{ inventory_hostname }}"
|
|
|
|
|
+ address: "{{ inventory_hostname }}"
|
|
|
|
|
+ port: 9100
|
|
|
|
|
+ tags: ["node-exporter", "{{ inventory_hostname }}"]
|
|
|
|
|
+ check:
|
|
|
|
|
+ http: "http://{{ inventory_hostname }}:9100/metrics"
|
|
|
|
|
+ interval: "10s"
|
|
|
|
|
+ headers:
|
|
|
|
|
+ Content-Type: application/json
|
|
|
|
|
+ delegate_to: "{{ consul_server }}"
|