--- - name: provision monitoring hosts: - monitoring01 tasks: - name: install playbook requirements package: name: - gpg - name: install prometheus stack package: name: - prometheus - prometheus-alertmanager # stolen from usr/share/prometheus/alertmanager/generate-ui.sh # script calls apt without "-y" therefore we need to install them beforehand - name: install dependencies for alertmanager ui generation package: name: - libjs-bootstrap4 - fonts-font-awesome - curl - uglifyjs - golang-github-prometheus-alertmanager-dev - name: configure alertmanager template: src: templates/alertmanager.yml.j2 dest: /etc/prometheus/alertmanager.yml validate: "/usr/bin/amtool check-config %s" notify: - reload prometheus-alertmanager - name: generate alertmanager ui shell: cmd: /usr/share/prometheus/alertmanager/generate-ui.sh creates: "/usr/share/prometheus/alertmanager/ui/index.html" notify: - restart prometheus-alertmanager - name: configure prometheus alerting rules copy: src: files/alerting_rules.yml dest: /etc/prometheus/alerting_rules.yml owner: root group: root mode: 0644 validate: "/usr/bin/promtool check rules %s" notify: - reload prometheus - name: configure prometheus template: src: templates/prometheus.yml dest: /etc/prometheus/prometheus.yml validate: "/usr/bin/promtool check config %s" notify: - reload prometheus - name: add grafana oss repo gpg key apt_key: url: "https://packages.grafana.com/gpg.key" id: "4E40DDF6D76E284A4A6780E48C8C34C524098CB6" - name: add grafana oss repo apt_repository: repo: "deb https://packages.grafana.com/oss/deb stable main" - name: install grafana oss package: name: grafana - name: enable and start grafana service: name: grafana-server state: started enabled: yes - name: enable anonymous login in grafana blockinfile: path: /etc/grafana/grafana.ini block: | [auth.anonymous] enabled = true org_role = Viewer notify: - restart grafana handlers: - name: reload prometheus service: name: prometheus state: reloaded - name: reload prometheus-alertmanager service: name: prometheus-alertmanager state: reloaded - name: restart prometheus-alertmanager service: name: prometheus-alertmanager state: restarted - name: restart grafana service: name: grafana-server state: restarted