--- - name: Create node_exporter system user ansible.builtin.user: name: "{{ node_exporter_user }}" system: true create_home: false shell: /usr/sbin/nologin state: present - name: Download node_exporter binary ansible.builtin.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 }}.tar.gz" mode: '0644' register: node_exporter_download - name: Extract node_exporter binary ansible.builtin.unarchive: src: "/tmp/node_exporter-{{ node_exporter_version }}.tar.gz" dest: /tmp remote_src: true creates: "/tmp/node_exporter-{{ node_exporter_version }}.linux-amd64" when: node_exporter_download.changed - name: Copy node_exporter binary to /usr/local/bin ansible.builtin.copy: src: "/tmp/node_exporter-{{ node_exporter_version }}.linux-amd64/node_exporter" dest: /usr/local/bin/node_exporter owner: root group: root mode: '0755' remote_src: true when: node_exporter_download.changed - name: Deploy node_exporter systemd service ansible.builtin.template: src: node_exporter.service.j2 dest: /etc/systemd/system/node_exporter.service owner: root group: root mode: '0644' notify: restart node_exporter - name: Enable and start node_exporter service ansible.builtin.systemd: name: node_exporter enabled: "{{ node_exporter_service_enabled }}" state: "{{ node_exporter_service_state }}" daemon_reload: true