~xenrox/ansible

85776fe5f4877e402a3374f03b530e5e1281716c — Thorben Günther 1 year, 6 months ago 3d46772
alertmanager: Send alerts to ntfy as well
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 }}
}