main.yml (2669B)
1 --- 2 - name: Create the node_exporter group 3 group: 4 name: "{{ node_exporter_system_group }}" 5 state: present 6 system: true 7 when: node_exporter_system_group != "root" 8 9 - name: Create the node_exporter user 10 user: 11 name: "{{ node_exporter_system_user }}" 12 groups: "{{ node_exporter_system_group }}" 13 append: true 14 shell: /usr/sbin/nologin 15 system: true 16 create_home: false 17 home: / 18 when: node_exporter_system_user != "root" 19 20 - name: create opt/bin 21 file: 22 name: /opt/bin 23 state: directory 24 owner: root 25 group: root 26 mode: '0755' 27 28 - block: 29 - name: Get checksum list from github 30 set_fact: 31 _checksums: "{{ lookup('url', 'https://github.com/prometheus/node_exporter/releases/download/v' + node_exporter_version + '/sha256sums.txt', wantlist=True) | list }}" 32 run_once: true 33 34 - name: "Get checksum for {{ go_arch }} architecture" 35 set_fact: 36 node_exporter_checksum: "{{ item.split(' ')[0] }}" 37 with_items: "{{ _checksums }}" 38 when: 39 - "( go_os + '-' + go_arch + '.tar.gz') in item" 40 41 - name: Download node_exporter tarball 42 get_url: 43 url: "https://github.com/prometheus/node_exporter/releases/download/v{{ node_exporter_version }}/node_exporter-{{ node_exporter_version }}.{{ go_os }}-{{ go_arch }}.tar.gz" 44 dest: "/tmp/node_exporter-{{ node_exporter_version }}.{{ go_os }}-{{ go_arch }}.tar.gz" 45 checksum: "sha256:{{ node_exporter_checksum }}" 46 mode: '0755' 47 owner: root 48 group: root 49 register: _download_binary 50 until: _download_binary is succeeded 51 retries: 5 52 delay: 2 53 54 - name: Unpack node_exporter tarball 55 unarchive: 56 remote_src: yes 57 src: "/tmp/node_exporter-{{ node_exporter_version }}.{{ go_os }}-{{ go_arch }}.tar.gz" 58 dest: "/tmp" 59 creates: "/tmp/node_exporter-{{ node_exporter_version }}.{{ go_os }}-{{ go_arch }}/node_exporter" 60 61 - name: Propagate node_exporter binaries 62 copy: 63 remote_src: yes 64 src: "/tmp/node_exporter-{{ node_exporter_version }}.{{ go_os }}-{{ go_arch }}/node_exporter" 65 dest: "/opt/bin/node_exporter" 66 mode: 0755 67 owner: root 68 group: root 69 notify: restart node_exporter 70 71 - name: node_exporter service 72 template: 73 src: files/node_exporter.service.j2 74 dest: /etc/systemd/system/node_exporter.service 75 owner: root 76 group: root 77 mode: '0644' 78 register: node_exporter_unit_file 79 when: go_os == "linux" 80 81 - name: reload systemd daemon 82 command: systemctl daemon-reload 83 when: 84 - node_exporter_unit_file.changed 85 - go_os == "linux" 86 87 - name: enable and start (linux) 88 service: 89 name: node_exporter 90 enabled: yes 91 state: started 92 when: go_os == "linux"