--- - name: check if prometheus apt component of spreadspace repo is enabled assert: msg: "please enable the 'prometheus' component of spreadspace repo using 'spreadspace_apt_repo_components'" that: - spreadspace_apt_repo_components is defined - "'prometheus' in spreadspace_apt_repo_components" ## TODO: pin version - name: install apt packages apt: name: prom-alertmanager state: present - name: add user for alertmanager user: name: prometheus-alertmanager system: yes home: /nonexistent create_home: no - name: create data directory file: path: /var/lib/prometheus/alertmanager state: directory owner: prometheus-alertmanager group: prometheus-alertmanager - name: generate configuration file template: src: alertmanager.yml.j2 dest: /etc/prometheus/alertmanager.yml notify: reload prometheus-alertmanager - name: generate web configuration file when: prometheus_alertmanager_auth_users is defined copy: content: | # Ansible managed basic_auth_users: {% for user,password in prometheus_alertmanager_auth_users.items() %} {{ user }}: {{ password | password_hash('bcrypt', (user~'@'~inventory_hostname~'/prometheus/alertmanager') | bcrypt_salt) }} {% endfor %} dest: /etc/prometheus/alertmanager-web.yml mode: 0640 owner: root group: prometheus-alertmanager notify: reload prometheus-alertmanager - name: generate systemd service unit template: src: prometheus-alertmanager.service.j2 dest: /etc/systemd/system/prometheus-alertmanager.service notify: restart prometheus-alertmanager - name: make sure alertmanager is enabled and started systemd: name: prometheus-alertmanager.service daemon_reload: yes state: started enabled: yes