---
- name: check if node_exporter binary exists
  stat: path=/usr/local/bin/node_exporter
  register: node_exporter_stat

- name: check version
  shell: /usr/local/bin/node_exporter -version|head -1|awk '{print $3}'
  check_mode: no
  ignore_errors: yes
  changed_when: false
  when: node_exporter_stat|succeeded
  register: installed_version

- debug: msg={{ node_exporter_stat }}
- debug: msg={{ node_exporter_version }}
- debug: msg={{ installed_version }}

- block:
  - name: download promethues node_exporter
    get_url:
      url=https://github.com/prometheus/node_exporter/releases/download/v{{ node_exporter_version }}/node_exporter-{{ node_exporter_version }}.linux-amd64.tar.gz
      dest=/tmp/node_exporter-{{ node_exporter_version }}.linux-amd64.tar.gz mode=0440

  - name: unpack node_exporter
    command: tar -C /tmp -xzvf /tmp/node_exporter-{{ node_exporter_version }}.linux-amd64.tar.gz


  - name: remove old node_exporter
    file: dest=/usr/local/bin/node_exporter state=absent
    
  - name: install node_exporter
    command: mv /tmp/node_exporter-{{ node_exporter_version }}.linux-amd64/node_exporter /usr/local/bin/node_exporter
    # command: install -b -C -o root -g wheel -m 755 /tmp/node_exporter-{{ node_exporter_version }}.linux-amd64/node_exporter /usr/local/bin/node_exporter
    args:
      creates: /usr/local/bin/node_exporter
  when: (node_exporter_stat|failed) or (installed_version.stdout != node_exporter_version)

- name: correct permissions on node_exporter
  file: dest=/usr/local/bin/node_exporter owner=root group=wheel
  when: not ansible_check_mode

- name: copy systemd node_exporter file
  copy: src=node_exporter.service dest=/etc/systemd/system/node_exporter.service

- name: enable service
  service: name=node_exporter enabled=yes state=started

