--- - name: Install Prometheus ansible.builtin.apt: update_cache: true name: prometheus register: apt_result retries: 3 until: apt_result is succeeded - name: Configure Prometheus ansible.builtin.template: src: prometheus/prometheus.yml.j2 dest: /etc/prometheus/prometheus.yml mode: 0644 notify: Restart Prometheus - name: Configure Prometheus alert rules ansible.builtin.template: src: prometheus/alert.rules.yml.j2 dest: /etc/prometheus/alert.rules.yml mode: 0644 notify: Restart Prometheus # We don't need to restart Prometheus when updating nodes - name: Configure Prometheus targets ansible.builtin.copy: content: "{{ [{'targets': item.value.targets}] | to_nice_json }}\n" dest: /etc/prometheus/{{ item.value.file }} mode: 0644 loop: "{{ prometheus | dict2items }}" - name: Activate prometheus service ansible.builtin.systemd: name: prometheus enabled: true state: started - name: Indicate role in motd ansible.builtin.template: src: update-motd.d/05-service.j2 dest: /etc/update-motd.d/05-prometheus mode: 0755