--- - name: Create node_exporter group group: name: "{{ node_exporter_system_group }}" state: present system: true when: node_exporter_system_group != "root" - name: Create node_exporter user user: name: "{{ node_exporter_system_user }}" group: "{{ node_exporter_system_group }}" groups: "{{ node_exporter_system_group }}" append: true shell: /usr/sbin/nologin system: true create_home: false home: / - name: Get latest node_exporter version github_release: user: prometheus repo: node_exporter action: latest_release token: "{{ vault_github_token }}" delegate_to: localhost run_once: true register: node_exporter_version - name: "{{ node_exporter_version }}" set_fact: node_exporter_version: "{{ node_exporter_version | replace ('v', '', 1) | trim }}" run_once: true - name: Download node_exporter {{ node_exporter_version.tag }} from GitHub get_url: url: "https://github.com/prometheus/node_exporter/releases/download/\ v{{ node_exporter_version.tag }}/node_exporter-{{ node_exporter_version.tag }}\ .linux-{{ deb_architecture }}.tar.gz" dest: "/var/tmp/node_exporter.tar.gz" register: _download_archive until: _download_archive is succeeded retries: 3 delay: 5 - name: Unpack node_exporter unarchive: remote_src: true src: "/var/tmp/node_exporter.tar.gz" dest: "{{ node_exporter_install_dir }}" owner: "{{ node_exporter_system_user }}" group: "{{ node_exporter_system_group }}" extra_opts: - --strip-components=1 include: - "node_exporter-{{ node_exporter_version.tag }}.linux-{{ deb_architecture }}/node_exporter" notify: restart node_exporter - name: Copy node_exporter systemd service template: src: node_exporter.service.j2 dest: /etc/systemd/system/node_exporter.service owner: root group: root mode: "0644" notify: restart node_exporter