--- - name: Install Prometheus apt: update_cache: true name: - prometheus - prometheus-snmp-exporter register: apt_result retries: 3 until: apt_result is succeeded - name: Configure Prometheus template: src: prometheus/prometheus.yml.j2 dest: /etc/prometheus/prometheus.yml mode: 0644 notify: Restart Prometheus - name: Configure Prometheus alert rules template: src: "prometheus/{{ item }}.j2" dest: "/etc/prometheus/{{ item }}" mode: 0644 notify: Restart Prometheus loop: - alert.rules.yml - django.rules.yml - name: Make Prometheus snmp-exporter listen on localhost only lineinfile: path: /etc/default/prometheus-snmp-exporter regexp: '^ARGS=' line: "ARGS=\"--web.listen-address=127.0.0.1:9116\"" notify: Restart prometheus-snmp-exporter # This file store SNMP OIDs - name: Configure Prometheus snmp-exporter template: src: "prometheus/snmp.yml.j2" dest: "/etc/prometheus/snmp.yml" mode: 0600 owner: prometheus notify: Restart prometheus-snmp-exporter # We don't need to restart Prometheus when updating nodes - name: Configure Prometheus nodes copy: content: "{{ prometheus_targets | to_nice_json }}" dest: /etc/prometheus/targets.json mode: 0644 # We don't need to restart Prometheus when updating nodes - name: Configure Prometheus Ubiquity Unifi SNMP devices copy: content: "{{ prometheus_unifi_snmp_targets | to_nice_json }}" dest: /etc/prometheus/targets_unifi_snmp.json mode: 0644 - name: Configure Prometheus UPS SNMP devices copy: content: "{{ [{'targets': prometheus_ups_snmp_targets }] | to_nice_json }}\n" dest: /etc/prometheus/targets_ups_snmp.json mode: 0644 - name: Activate prometheus service systemd: name: prometheus enabled: true state: started - name: Indicate role in motd template: src: update-motd.d/05-service.j2 dest: /etc/update-motd.d/05-prometheus mode: 0755