diff options
| author | Mitchell Riedstra <mitch@riedstra.dev> | 2021-10-17 20:45:38 -0400 |
|---|---|---|
| committer | Mitchell Riedstra <mitch@riedstra.dev> | 2021-10-17 20:45:38 -0400 |
| commit | a83c53c2997327c9ee7ddf4856c6360ccf541a0a (patch) | |
| tree | 258668929292530a5ef90b415e92d2f6ede3147d /tasks | |
| parent | 01cda8792213340fdedcd364dedb2a73564d27f2 (diff) | |
| download | prometheus-a83c53c2997327c9ee7ddf4856c6360ccf541a0a.tar.gz prometheus-a83c53c2997327c9ee7ddf4856c6360ccf541a0a.tar.xz | |
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.yml | 2 | ||||
| -rw-r--r-- | tasks/blackbox.yml | 55 | ||||
| -rw-r--r-- | tasks/discord.yml | 42 | ||||
| -rw-r--r-- | tasks/main.yml | 46 |
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 |
