--- - 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: "{{ item }}.j2" dest: "/etc/prometheus/{{ item }}" owner: prometheus group: prometheus mode: u=r,g=r,o= loop: - prometheus.yml notify: Restart Prometheus - name: Creates directory for alerts file: path: /etc/prometheus/alerts state: directory owner: prometheus group: prometheus mode: 0755 - name: Configure Prometheus alerts template: src: "{{ item }}.j2" dest: "/etc/prometheus/alerts/{{ item }}" owner: prometheus group: prometheus mode: u=r,g=r,o= loop: - server.rules.yml - docker.rules.yml - django.rules.yml - ups.rules.yml - postgres.rules.yml - environmental.rules.yml notify: Restart Prometheus - 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 # These files store SNMP OIDs - name: Configure Prometheus snmp-exporter template: src: "{{ item }}.j2" dest: "/etc/prometheus/{{ item }}" owner: prometheus group: prometheus mode: u=r,g=r,o= loop: - snmp.yml notify: Restart prometheus-snmp-exporter - name: Remove old targets file: path: "{{ item }}" state: absent loop: - /etc/prometheus/targets.json - /etc/prometheus/targets_unifi_snmp.json - /etc/prometheus/targets_switch_snmp.json - /etc/prometheus/targets_ups_snmp.json - /etc/prometheus/targets_docker.json - /etc/prometheus/targets_postgres.json - /etc/prometheus/targets_apc_pdu_snmp.json - /etc/prometheus/targets_ipmi.json - name: Activate prometheus service systemd: name: prometheus enabled: true state: started ...