--- - name: Install Prometheus apt: update_cache: true name: prometheus 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 # We don't need to restart Prometheus when updating nodes - name: Configure Prometheus targets copy: content: "{{ [{'targets': item.targets}] | to_nice_json }}\n" dest: "/etc/prometheus/{{ item.file }}.json" mode: 0644 loop: - file: targets targets: "{{ prometheus.node_targets }}" - file: targets_ups_snmp targets: "{{ prometheus.ups_snmp_targets }}" - file: targets_procurve_snmp targets: "{{ prometheus.procurve_snmp_targets }}" - file: targets_unifi_snmp targets: "{{ prometheus.unifi_snmp_targets }}" - file: targets_nginx targets: "{{ prometheus.nginx_targets }}" - file: targets_apache targets: "{{ prometheus.apache_targets }}" - file: targets_blackbox targets: "{{ prometheus.blackbox_targets }}" - 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