--- - 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 nodes copy: content: "{{ [{'targets': prometheus.node_targets}] | to_nice_json }}" dest: /etc/prometheus/targets.json mode: 0644 # We don't need to restart Prometheus when updating nodes - name: Configure Prometheus UPS SNMP devices copy: content: "{{ [{'targets': prometheus.ups_snmp_targets}] | to_nice_json }}" dest: /etc/prometheus/targets_ups_snmp.json mode: 0644 # We don't need to restart Prometheus when updating nodes - name: Configure Prometheus Ubiquity Unifi SNMP devices copy: content: "{{ [{'targets': prometheus.unifi_snmp_targets}] | to_nice_json }}" dest: /etc/prometheus/targets_unifi_snmp.json mode: 0644 when: prometheus.unifi_snmp_targets is defined # We don't need to restart Prometheus when updating nodes - name: Configure Prometheus NGINX targets copy: content: "{{ [{'targets': prometheus.nginx_targets}] | to_nice_json }}" dest: /etc/prometheus/targets_nginx.json mode: 0644 when: prometheus.nginx_targets is defined # We don't need to restart Prometheus when updating nodes - name: Configure Prometheus Apache targets copy: content: "{{ [{'targets': prometheus.apache_targets}] | to_nice_json }}" dest: /etc/prometheus/targets_apache.json mode: 0644 when: prometheus.apache_targets is defined # We don't need to restart Prometheus when updating nodes - name: Configure Prometheus Blackbox targets copy: content: "{{ [{'targets': prometheus.blackbox_targets}] | to_nice_json }}" dest: /etc/prometheus/targets_blackbox.json mode: 0644 when: prometheus.blackbox_targets is defined - 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