--- - name: Install Prometheus Node exporter apt: name: - prometheus-node-exporter state: latest update_cache: true install_recommends: false # Do not install smartmontools register: apt_result retries: 3 until: apt_result is succeeded # TODO: add auth # # Create the file --web.config=/etc/node_exporter/config.yaml # and add --web.config=/etc/node_exporter/config.yaml to # the args in /etc/default/prometheus-node-exporter - name: Setup the arguments for node-exporter template: src: prometheus-node-exporter dest: /etc/default/prometheus-node-exporter owner: root group: root mode: '0644' notify: Restart prometheus-node-exporter vars: args: - name: web.listen-address value: "{{ lan_address }}:9100" # - name: web.config # value: /etc/node_exporter/config.yaml # Add the node to the server targets - name: Get the list of targets of the server slurp: src: /etc/prometheus/node-targets.json register: server_target_file delegate_to: "{{ appointed_prometheus_server }}" - name: Set target variable set_fact: server_target: "{{ server_target_file['content'] | b64decode | from_json }}" - name: Add the node to the targets set_fact: server_target: "[{{ server_target[0] | combine({'targets': [lan_address]}, list_merge='append_rp') }}]" - name: Put the new target list copy: content: "{{ server_target | to_nice_json }}" dest: /etc/prometheus/node-targets.json delegate_to: "{{ appointed_prometheus_server }}"