main.yml 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. ---
  2. - name: Download Node Exporter binary
  3. get_url:
  4. url: https://github.com/prometheus/node_exporter/releases/download/v1.6.0/node_exporter-1.6.0.linux-amd64.tar.gz
  5. dest: /tmp/node_exporter.tar.gz
  6. mode: '0644'
  7. - name: Extract Node Exporter
  8. unarchive:
  9. src: /tmp/node_exporter.tar.gz
  10. dest: /opt
  11. remote_src: yes
  12. creates: /opt/node_exporter-1.6.0.linux-amd64
  13. - name: Link Node Exporter
  14. file:
  15. src: /opt/node_exporter-1.6.0.linux-amd64
  16. dest: /opt/node_exporter
  17. state: link
  18. - name: Create node_exporter user
  19. user:
  20. name: node_exporter
  21. system: yes
  22. shell: /bin/false
  23. - name: Create directories
  24. file:
  25. path: /var/lib/node_exporter
  26. state: directory
  27. owner: node_exporter
  28. group: node_exporter
  29. mode: '0755'
  30. - name: Copy Node Exporter service
  31. template:
  32. src: node_exporter.service.j2
  33. dest: /etc/systemd/system/node_exporter.service
  34. owner: root
  35. group: root
  36. mode: '0644'
  37. - name: Enable and start Node Exporter
  38. systemd:
  39. name: node_exporter
  40. daemon_reload: yes
  41. enabled: yes
  42. state: started
  43. - name: Register Node-exporter to Consul
  44. uri:
  45. url: "http://{{ consul_server }}:8500/v1/agent/service/register"
  46. method: PUT
  47. body_format: json
  48. body:
  49. name: "node-exporter-{{ inventory_hostname }}"
  50. id: "node-exporter-{{ inventory_hostname }}"
  51. address: "{{ inventory_hostname }}"
  52. port: 9100
  53. tags: ["node-exporter", "{{ inventory_hostname }}"]
  54. check:
  55. http: "http://{{ inventory_hostname }}:9100/metrics"
  56. interval: "10s"
  57. headers:
  58. Content-Type: application/json
  59. delegate_to: "{{ consul_server }}"