aboutsummaryrefslogtreecommitdiff
path: root/tasks
diff options
context:
space:
mode:
Diffstat (limited to 'tasks')
-rw-r--r--tasks/alertmanager.yml2
-rw-r--r--tasks/blackbox.yml55
-rw-r--r--tasks/discord.yml42
-rw-r--r--tasks/main.yml46
4 files changed, 142 insertions, 3 deletions
diff --git a/tasks/alertmanager.yml b/tasks/alertmanager.yml
index 4c9e4d3..f89e7ed 100644
--- a/tasks/alertmanager.yml
+++ b/tasks/alertmanager.yml
@@ -12,7 +12,7 @@
#!/bin/sh
set -e
if ! [ -e "{{prometheus_home_dir}}/{{alertmanager_extract_dir}}" ] ; then
- su - '{{prometheus_user}}' -c 'tar xzf alertmanager-{{alertmanager_version}}.tgz'
+ su - '{{prometheus_user}}' -c 'cd "{{prometheus_home_dir}}"; tar xzf alertmanager-{{alertmanager_version}}.tgz'
exit 50
fi
register: res
diff --git a/tasks/blackbox.yml b/tasks/blackbox.yml
new file mode 100644
index 0000000..c6bcd43
--- /dev/null
+++ b/tasks/blackbox.yml
@@ -0,0 +1,55 @@
+---
+- name: Download Blackbox Exporter
+ get_url:
+ url: "{{blackbox_exporter_url}}"
+ dest: "{{prometheus_home_dir}}/blackbox_exporter-{{blackbox_exporter_version}}.tgz"
+ mode: '0600'
+ owner: "{{prometheus_user}}"
+ checksum: '{{blackbox_exporter_checksum_alg}}:{{blackbox_exporter_checksum}}'
+- set_fact: "blackbox_exporter_extract_dir=blackbox_exporter-{{blackbox_exporter_version}}.{{prometheus_os}}-{{prometheus_architecture}}"
+- name: Extract Blackbox Exporter
+ shell: |
+ #!/bin/sh
+ set -e
+ if ! [ -e "{{prometheus_home_dir}}/{{blackbox_exporter_extract_dir}}" ] ; then
+ su - '{{prometheus_user}}' -c 'cd "{{prometheus_home_dir}}"; tar xzf blackbox_exporter-{{blackbox_exporter_version}}.tgz'
+ exit 50
+ fi
+ register: res
+ changed_when: res is defined and res.rc == 50
+ ignore_errors: true
+ notify: Restart Blackbox Exporter
+- name: Link Blackbox Exporter directroy
+ file:
+ state: link
+ src: '{{blackbox_exporter_extract_dir}}'
+ dest: '{{prometheus_home_dir}}/blackbox_exporter'
+ force: yes
+- name: Write Blackbox Exporter configuration file
+ copy:
+ content: '{{blackbox_exporter_conf | to_nice_yaml}}'
+ dest: '{{prometheus_home_dir}}/conf/blackbox_exporter.yml'
+ owner: '{{prometheus_user}}'
+ mode: '0600'
+ notify: Restart Blackbox Exporter
+ tags:
+ - configuration
+- name: Create Runit Directory
+ file:
+ state: directory
+ dest: /etc/sv/blackbox_exporter
+ owner: root
+ mode: '0755'
+- name: Write runit service
+ template:
+ src: blackbox_exporter.runit
+ dest: /etc/sv/blackbox_exporter/run
+ owner: root
+ mode: '0755'
+ tags:
+ - configuration
+- name: Enable Runit service
+ file:
+ state: link
+ src: /etc/sv/blackbox_exporter
+ dest: /var/service/blackbox_exporter
diff --git a/tasks/discord.yml b/tasks/discord.yml
new file mode 100644
index 0000000..aaf8c9b
--- /dev/null
+++ b/tasks/discord.yml
@@ -0,0 +1,42 @@
+---
+- name: Download Alertmanager Discord
+ get_url:
+ url: "{{alertmanager_discord_url}}"
+ dest: "{{prometheus_home_dir}}/alertmanager_discord.gz"
+ mode: '0600'
+ owner: "{{prometheus_user}}"
+ checksum: 'sha256:{{alertmanager_discord_checksum}}'
+- name: Extract Alertmanager Discord
+ shell: |
+ #!/bin/sh
+ set -e
+ cd "{{prometheus_home_dir}}"
+ gzip -dc < alertmanager_discord.gz > alertmanager_discord
+ if ! [ -x alertmanager_discord ] ; then
+ chmod +x alertmanager_discord
+ fi
+ chown '{{prometheus_user}}' alertmanager_discord
+ exit 50
+ register: res
+ changed_when: res is defined and res.rc == 50
+ ignore_errors: true
+ notify: Restart Alertmanager Discord
+- name: Create Runit Directory
+ file:
+ state: directory
+ dest: /etc/sv/alertmanager_discord
+ owner: root
+ mode: '0755'
+- name: Write runit service
+ template:
+ src: alertmanager_discord.runit
+ dest: /etc/sv/alertmanager_discord/run
+ owner: root
+ mode: '0755'
+ tags:
+ - configuration
+- name: Enable Runit service
+ file:
+ state: link
+ src: /etc/sv/alertmanager_discord
+ dest: /var/service/alertmanager_discord
diff --git a/tasks/main.yml b/tasks/main.yml
index 19ca131..e9a017a 100644
--- a/tasks/main.yml
+++ b/tasks/main.yml
@@ -30,11 +30,12 @@
#!/bin/sh
set -e
if ! [ -e "{{prometheus_home_dir}}/{{prometheus_extract_dir}}" ] ; then
- su - '{{prometheus_user}}' -c 'tar xzf prometheus-{{prometheus_version}}.tgz'
+ su - '{{prometheus_user}}' -c 'cd "{{prometheus_home_dir}}"; tar xzf prometheus-{{prometheus_version}}.tgz'
exit 50
fi
register: res
changed_when: res is defined and res.rc == 50
+ # failed_when: res is defined and ( res.rc != 50 or res.rc != 0 )
ignore_errors: true
notify: Restart Prometheus
- name: Link prometheus directory
@@ -53,13 +54,34 @@
- prometheus.yml
- name: Write prometheus configuration file
copy:
- content: '{{prometheus_config | to_nice_yaml}}'
+ content: '{{prometheus_config | to_nice_json}}'
dest: '{{prometheus_home_dir}}/conf/prometheus.yml'
owner: '{{prometheus_user}}'
mode: '0600'
notify: Restart prometheus
tags:
- configuration
+- name: Write prometheus web configuration file
+ copy:
+ content: '{{prometheus_web_config | to_nice_json}}'
+ dest: '{{prometheus_home_dir}}/conf/web_conf.yml'
+ owner: '{{prometheus_user}}'
+ mode: '0600'
+ when: prometheus_web_config is defined
+ notify: Restart prometheus
+ tags:
+ - configuration
+- name: Write other config files
+ copy:
+ content: '{{item.content}}'
+ dest: '{{prometheus_home_dir}}/conf/{{item.filename}}'
+ owner: '{{prometheus_user}}'
+ mode: '0600'
+ loop: '{{prometheus_other_config | dict2items(key_name="filename", value_name="content")}}'
+ when: prometheus_other_config is defined
+ notify: Restart prometheus
+ tags:
+ - configuration
- name: Create Runit Directory
file:
state: directory
@@ -72,6 +94,8 @@
dest: /etc/sv/prometheus/run
owner: root
mode: '0755'
+ tags:
+ - configuration
- name: Enable Runit service
file:
state: link
@@ -86,3 +110,21 @@
tags:
- alertmanager
when: alertmanager
+- name: Include Blackbox Exporter tasks
+ include_tasks:
+ file: blackbox.yml
+ apply:
+ tags:
+ - blackbox
+ tags:
+ - blackbox
+ when: blackbox_exporter
+- name: Include Discord tasks
+ include_tasks:
+ file: discord.yml
+ apply:
+ tags:
+ - discord
+ tags:
+ - discord
+ when: alertmanager_discord