summaryrefslogtreecommitdiff
path: root/roles
diff options
context:
space:
mode:
Diffstat (limited to 'roles')
-rw-r--r--roles/monitoring/alerta/defaults/main.yml12
-rw-r--r--roles/monitoring/alerta/tasks/main.yml15
-rw-r--r--roles/monitoring/alerta/templates/pod-spec.yml.j216
-rw-r--r--roles/monitoring/alerta/vars/main.yml5
-rw-r--r--roles/monitoring/prometheus/alertmanager/defaults/main.yml5
-rw-r--r--roles/monitoring/prometheus/alertmanager/tasks/main.yml13
6 files changed, 54 insertions, 12 deletions
diff --git a/roles/monitoring/alerta/defaults/main.yml b/roles/monitoring/alerta/defaults/main.yml
index 034c8268..59dea307 100644
--- a/roles/monitoring/alerta/defaults/main.yml
+++ b/roles/monitoring/alerta/defaults/main.yml
@@ -1,2 +1,14 @@
---
# alerta_base_path: /srv/alerta
+# alerta_storage:
+# type: (zfs|lvm)
+# ...
+
+# alerta_web_version: 8.7.0
+# alerta_postgres_version: 14.2
+# alerta_redis_version: 6.2.6
+
+alerta_web_port: 8080
+
+# alerta_web_secret_key: "randomstring"
+# alerta_postgres_password: "secret"
diff --git a/roles/monitoring/alerta/tasks/main.yml b/roles/monitoring/alerta/tasks/main.yml
index 490f5e3d..ffedb143 100644
--- a/roles/monitoring/alerta/tasks/main.yml
+++ b/roles/monitoring/alerta/tasks/main.yml
@@ -1,4 +1,11 @@
---
+- name: prepare storage volume for alerta
+ when: alerta_storage is defined
+ vars:
+ storage_volume: "{{ alerta_storage | combine({'dest': alerta_base_path}) }}"
+ include_role:
+ name: "storage/{{ alerta_storage.type }}/volume"
+
- name: create alerta subdirectories
loop:
- config
@@ -11,18 +18,18 @@
- name: generate Dockerfile for custom image
copy:
content: |
- FROM alerta/alerta-web:8.7.0
+ FROM alerta/alerta-web:{{ alerta_web_version }}
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
+ && /venv/bin/pip install redis=={{ _alerta_pip[alerta_web_version].redis_version }} \
+ && /venv/bin/pip install git+https://github.com/alerta/alerta-contrib.git@{{ _alerta_pip[alerta_web_version].contrib_mailer_git_hash }}#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"
+ name: "alerta-web-with-mailer:{{ alerta_web_version }}"
state: present
force_source: "{{ alerta_custom_image_docker is changed }}"
source: build
diff --git a/roles/monitoring/alerta/templates/pod-spec.yml.j2 b/roles/monitoring/alerta/templates/pod-spec.yml.j2
index 6edabae5..c39ec080 100644
--- a/roles/monitoring/alerta/templates/pod-spec.yml.j2
+++ b/roles/monitoring/alerta/templates/pod-spec.yml.j2
@@ -1,13 +1,15 @@
containers:
- name: alerta
- image: "alerta-web-with-mailer:8.7.0"
+ image: "alerta-web-with-mailer:{{ alerta_web_version }}"
env:
- name: "DATABASE_URL"
- value: "postgres://alerta:secret@127.0.0.1:5432/alerta"
+ value: "postgres://alerta:{{ alerta_postgres_password }}@127.0.0.1:5432/alerta"
- name: "AUTH_REQUIRED"
value: "True"
- name: "ADMIN_USERS"
value: "admin"
+ - name: "SECRET_KEY"
+ value: "{{ alerta_web_secret_key }}"
- name: "DEBUG"
value: "1"
- name: "SUPERVISORD_LOG_LEVEL"
@@ -19,10 +21,10 @@ containers:
readOnly: true
ports:
- containerPort: 8080
- hostPort: 8080
+ hostPort: {{ alerta_web_port }}
- name: postgresql
- image: "postgres:14.2"
+ image: "postgres:{{ alerta_postgres_version }}"
args:
- postgres
- -c
@@ -33,20 +35,20 @@ containers:
- name: "POSTGRES_USER"
value: "alerta"
- name: "POSTGRES_PASSWORD"
- value: "secret"
+ value: "{{ alerta_postgres_password }}"
volumeMounts:
- name: postgres
mountPath: /var/lib/postgresql/data
- name: redis
- image: "redis:6.2.6"
+ image: "redis:{{ alerta_redis_version }}"
args:
- redis-server
- --bind
- 127.0.0.1
- name: mailer
- image: "alerta-web-with-mailer:8.7.0"
+ image: "alerta-web-with-mailer:{{ alerta_web_version }}"
command:
- alerta-mailer
env:
diff --git a/roles/monitoring/alerta/vars/main.yml b/roles/monitoring/alerta/vars/main.yml
new file mode 100644
index 00000000..928a720b
--- /dev/null
+++ b/roles/monitoring/alerta/vars/main.yml
@@ -0,0 +1,5 @@
+---
+_alerta_pip:
+ 8.7.0:
+ redis_version: 4.1.4
+ contrib_mailer_git_hash: 69d271ef9fe6542727ec4aa39fc8e0f797f1e8b1
diff --git a/roles/monitoring/prometheus/alertmanager/defaults/main.yml b/roles/monitoring/prometheus/alertmanager/defaults/main.yml
index 86cd9aa5..ac4f7600 100644
--- a/roles/monitoring/prometheus/alertmanager/defaults/main.yml
+++ b/roles/monitoring/prometheus/alertmanager/defaults/main.yml
@@ -21,5 +21,8 @@ prometheus_alertmanager_route:
prometheus_alertmanager_receivers:
- name: empty
-# prometheus_server_auth_users:
+# prometheus_alertmanager_auth_users:
# admin: geheim
+
+# prometheus_alertmanager_password_files:
+# user: secret
diff --git a/roles/monitoring/prometheus/alertmanager/tasks/main.yml b/roles/monitoring/prometheus/alertmanager/tasks/main.yml
index 338b0cbe..173ea758 100644
--- a/roles/monitoring/prometheus/alertmanager/tasks/main.yml
+++ b/roles/monitoring/prometheus/alertmanager/tasks/main.yml
@@ -47,6 +47,19 @@
group: prometheus-alertmanager
notify: reload prometheus-alertmanager
+- name: generate password files
+ when: prometheus_alertmanager_password_files is defined
+ loop: "{{ prometheus_alertmanager_password_files | dict2items }}"
+ loop_control:
+ label: "{{ item.key }}"
+ copy:
+ content: "{{ item.value }}"
+ dest: "/etc/prometheus/alertmanager-{{ item.key }}.password"
+ mode: 0640
+ owner: root
+ group: prometheus-alertmanager
+ notify: reload prometheus-alertmanager
+
- name: generate systemd service unit
template:
src: prometheus-alertmanager.service.j2