--- - 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 }}"