aboutsummaryrefslogtreecommitdiff
path: root/tasks
diff options
context:
space:
mode:
authorMitchell Riedstra <mitch@riedstra.dev>2021-10-17 20:45:38 -0400
committerMitchell Riedstra <mitch@riedstra.dev>2021-10-17 20:45:38 -0400
commita83c53c2997327c9ee7ddf4856c6360ccf541a0a (patch)
tree258668929292530a5ef90b415e92d2f6ede3147d /tasks
parent01cda8792213340fdedcd364dedb2a73564d27f2 (diff)
downloadprometheus-a83c53c2997327c9ee7ddf4856c6360ccf541a0a.tar.gz
prometheus-a83c53c2997327c9ee7ddf4856c6360ccf541a0a.tar.xz
Update prometheus, alertmanager and add a few new optionsHEADmaster
TLS Support for everything if you configure the vars properly. Blackbox exporter. Alertmanager discord for sending alerts there via webhooks. Runit services for all of them.
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