summaryrefslogtreecommitdiff
path: root/roles/monitoring/alerta/tasks/main.yml
diff options
context:
space:
mode:
Diffstat (limited to 'roles/monitoring/alerta/tasks/main.yml')
-rw-r--r--roles/monitoring/alerta/tasks/main.yml99
1 files changed, 99 insertions, 0 deletions
diff --git a/roles/monitoring/alerta/tasks/main.yml b/roles/monitoring/alerta/tasks/main.yml
new file mode 100644
index 00000000..490f5e3d
--- /dev/null
+++ b/roles/monitoring/alerta/tasks/main.yml
@@ -0,0 +1,99 @@
+---
+- name: create alerta subdirectories
+ loop:
+ - config
+ - postgres
+ - build
+ file:
+ path: "{{ alerta_base_path }}/{{ item }}"
+ state: directory
+
+- name: generate Dockerfile for custom image
+ copy:
+ content: |
+ FROM alerta/alerta-web:8.7.0
+
+ RUN set -x \
+ && sed 's/USE_AM_EXTERNALURL_FOR_SILENCES/ALERTMANAGER_USE_EXTERNALURL_FOR_SILENCES/' -i /venv/lib/python3.8/site-packages/alerta_prometheus.py \
+ && /venv/bin/pip install redis==4.1.4 \
+ && /venv/bin/pip install git+https://github.com/alerta/alerta-contrib.git@69d271ef9fe6542727ec4aa39fc8e0f797f1e8b1#subdirectory=integrations/mailer
+ dest: "{{ alerta_base_path }}/build/Dockerfile"
+ register: alerta_custom_image_docker
+
+- name: build custom image
+ docker_image:
+ name: "alerta-web-with-mailer:8.7.0"
+ state: present
+ force_source: "{{ alerta_custom_image_docker is changed }}"
+ source: build
+ build:
+ path: "{{ alerta_base_path }}/build"
+ network: host
+ pull: yes
+
+- name: install alertad config template
+ copy:
+ content: |
+ DEBUG = {{ '{{' }} 'True' if env.DEBUG else 'False' {{ '}}' }}
+ SECRET = "{{ '{{' }} env.SECRET_KEY {{ '}}' }}"
+ ALERT_TIMEOUT = 86400
+ HEARTBEAT_TIMEOUT = 7200
+ PLUGINS = ['reject', 'blackout', 'heartbeat', 'prometheus', 'amqp']
+ DEFAULT_ENVIRONMENT = 'unknown'
+ ALLOWED_ENVIRONMENTS = ['unknown', 'chaos-at-.*']
+ HEARTBEAT_EVENTS = ['PrometheusAlertmanagerE2eDeadManSwitch']
+ ALERTMANAGER_USERNAME = 'alerta'
+ ALERTMANAGER_PASSWORD = 'alerta'
+ ALERTMANAGER_SILENCE_FROM_ACK = True
+ ALERTMANAGER_USE_EXTERNALURL_FOR_SILENCES = True
+ AMQP_URL = 'redis://localhost:6379/'
+ dest: "{{ alerta_base_path }}/config/alertad.conf.j2"
+
+ ## TODO: add key handling...
+- name: install alerta-mailer config file
+ copy:
+ content: |
+ [alerta-mailer]
+ debug = True
+ key = aNqBsEyG0ynIKcc3e7acaBVBk5B793o_z7tvlsht
+ endpoint = http://localhost:8080/api
+ amqp_url = redis://localhost:6379
+ severities = critical, warning
+ smtp_host = 192.168.28.250
+ smtp_port = 25
+ smtp_starttls = False
+ skip_mta = False
+ mail_to = equinox@chaos-at-home.org
+ mail_from = noreply@chaos-at-home.org
+ email_type = text
+ mail_template = /app/email.tmpl
+ dashboard_url = http://192.168.32.1:8080
+ dest: "{{ alerta_base_path }}/config/alerta-mailer.conf"
+ mode: 0640
+
+- name: install e-mail template
+ copy:
+ src: email.tmpl
+ dest: "{{ alerta_base_path }}/config/email.tmpl"
+
+- name: install pod manifest
+ vars:
+ kubernetes_standalone_pod:
+ name: "alerta"
+ spec: "{{ lookup('template', 'pod-spec.yml.j2') }}"
+ mode: "0600"
+ config_hash_items:
+ - path: "{{ alerta_base_path }}/config/alertad.conf.j2"
+ properties:
+ - checksum
+ - path: "{{ alerta_base_path }}/config/alerta-mailer.conf"
+ properties:
+ - checksum
+ - path: "{{ alerta_base_path }}/config/email.tmpl"
+ properties:
+ - checksum
+ - path: "{{ alerta_base_path }}/build/Dockerfile"
+ properties:
+ - checksum
+ include_role:
+ name: kubernetes/standalone/pod