M roles/alertmanager/handlers/main.yml => roles/alertmanager/handlers/main.yml +5 -0
@@ 8,3 8,8 @@
ansible.builtin.systemd:
name: alertmanager
state: restarted
+
+- name: Restart ntfy-alertmanager
+ ansible.builtin.systemd:
+ name: ntfy-alertmanager
+ state: restarted
M roles/alertmanager/tasks/main.yml => roles/alertmanager/tasks/main.yml +31 -1
@@ 1,7 1,9 @@
---
-- name: Get email secrets
+- name: Get secrets
ansible.builtin.set_fact:
+ alertmanager_secrets: "{{ lookup('community.hashi_vault.hashi_vault', 'ansible/data/alertmanager') }}"
email_secrets: "{{ lookup('community.hashi_vault.hashi_vault', 'ansible/data/email') }}"
+ infrastructure_password: "{{ lookup('community.hashi_vault.hashi_vault', 'ansible/data/ntfy:infrastructure_password') }}"
- name: Install
community.general.pacman:
@@ 31,3 33,31 @@
name: alertmanager
enabled: true
state: started
+
+- name: Install ntfy-alertmanager
+ community.general.pacman:
+ name: ntfy-alertmanager-git
+ state: present
+
+- name: Create ntfy-alertmanager config dir
+ ansible.builtin.file:
+ path: /etc/ntfy-alertmanager
+ state: directory
+ owner: ntfy-alertmanager
+ group: ntfy-alertmanager
+ mode: 0700
+
+- name: Configure ntfy-alertmanager
+ ansible.builtin.template:
+ src: ntfy-alertmanager.j2
+ dest: /etc/ntfy-alertmanager/config
+ owner: ntfy-alertmanager
+ group: ntfy-alertmanager
+ mode: 0600
+ notify: Restart ntfy-alertmanager
+
+- name: Start and enable ntfy-alertmanager
+ ansible.builtin.systemd:
+ name: ntfy-alertmanager
+ enabled: true
+ state: started
M roles/alertmanager/templates/alertmanager.yml.j2 => roles/alertmanager/templates/alertmanager.yml.j2 +8 -2
@@ 10,14 10,20 @@ route:
group_wait: 30s
group_interval: 5m
repeat_interval: 24h
- receiver: "email"
+ receiver: "ntfy-email"
routes:
- match:
job: "desktop"
repeat_interval: 7d
receivers:
- - name: "email"
+ - name: "ntfy-email"
email_configs:
- to: "admin@xenrox.net"
send_resolved: true
+ webhook_configs:
+ - url: "http://127.0.0.1:8089"
+ http_config:
+ basic_auth:
+ username: "{{ alertmanager_secrets['webhook_user'] }}"
+ password: "{{ alertmanager_secrets['webhook_pass'] }}"
A roles/alertmanager/templates/ntfy-alertmanager.j2 => roles/alertmanager/templates/ntfy-alertmanager.j2 +10 -0
@@ 0,0 1,10 @@
+http-address 127.0.0.1:8089
+log-level debug
+user {{ alertmanager_secrets['webhook_user'] }}
+password {{ alertmanager_secrets['webhook_pass'] }}
+
+ntfy {
+ topic https://ntfy.xenrox.net/infrastructure
+ user infrastructure
+ password {{ infrastructure_password }}
+}