aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Johannes Christ <[email protected]>2024-05-30 15:59:04 +0200
committerGravatar Johannes Christ <[email protected]>2024-05-30 15:59:04 +0200
commit6496fa65823344cffd53861c7b1fadc920b0cea9 (patch)
treef92a6a8524c94618645ef793f1244e9636893027
parentAdd new users for Grafana and Metabase (diff)
Install custom Prometheus version
Co-authored-by: Joe William Murray Humphreys Banks <[email protected]>
-rw-r--r--ansible/host_vars/lovelace/prometheus.yml2
-rw-r--r--ansible/roles/prometheus/defaults/main.yml13
-rw-r--r--ansible/roles/prometheus/meta/main.yml3
-rw-r--r--ansible/roles/prometheus/tasks/main.yml63
-rw-r--r--ansible/roles/systemd/handlers/main.yml6
5 files changed, 85 insertions, 2 deletions
diff --git a/ansible/host_vars/lovelace/prometheus.yml b/ansible/host_vars/lovelace/prometheus.yml
index cf748d0..cc35844 100644
--- a/ansible/host_vars/lovelace/prometheus.yml
+++ b/ansible/host_vars/lovelace/prometheus.yml
@@ -1,6 +1,6 @@
---
-prometheus_cmdline_options: " --web.config.file=/etc/prometheus/web_config.yml"
+prometheus_cmdline_options: " --web.config.file=/etc/prometheus/web_config.yml --config.file=/etc/prometheus/prometheus.yml --web.page-title='Python Discord Helper Monitoring And Supervision Service' --storage.tsdb.path='/var/lib/prometheus/metrics2/'"
prometheus_web_configuration:
tls_server_config:
diff --git a/ansible/roles/prometheus/defaults/main.yml b/ansible/roles/prometheus/defaults/main.yml
new file mode 100644
index 0000000..56a7cfd
--- /dev/null
+++ b/ansible/roles/prometheus/defaults/main.yml
@@ -0,0 +1,13 @@
+---
+prometheus_version: "2.52.0"
+prometheus_release_name: prometheus-{{ prometheus_version }}.linux-amd64
+prometheus_release_url: https://github.com/prometheus/prometheus/releases/download/v{{ prometheus_version }}/{{ prometheus_release_name }}.tar.gz
+prometheus_release_sha256sum_url: https://github.com/prometheus/prometheus/releases/download/v{{ prometheus_version }}/sha256sums.txt
+prometheus_base_directory: /opt/prometheus
+prometheus_installation_directory: "{{ prometheus_base_directory }}/versions"
+prometheus_tarball_name: "{{ prometheus_release_url | basename }}"
+prometheus_base_release_dest: "{{ prometheus_base_directory }}/sources"
+prometheus_release_tarball_dest: "{{ prometheus_base_release_dest }}/{{ prometheus_tarball_name }}"
+
+# web assets?
+# prometheus_cmdline_options: "--config.file=/etc/prometheus/prometheus.yml --web.page-title='Python Discord Helper Monitoring And Supervision Service'"
diff --git a/ansible/roles/prometheus/meta/main.yml b/ansible/roles/prometheus/meta/main.yml
new file mode 100644
index 0000000..56e9b53
--- /dev/null
+++ b/ansible/roles/prometheus/meta/main.yml
@@ -0,0 +1,3 @@
+---
+dependencies:
+ - systemd
diff --git a/ansible/roles/prometheus/tasks/main.yml b/ansible/roles/prometheus/tasks/main.yml
index c8ba53f..a024a2c 100644
--- a/ansible/roles/prometheus/tasks/main.yml
+++ b/ansible/roles/prometheus/tasks/main.yml
@@ -1,11 +1,45 @@
---
-- name: Install prometheus
+- name: Install prometheus package
package:
name: prometheus
state: present
tags:
- role::prometheus
+- name: Create directories for Prometheus versions and tarballs
+ ansible.builtin.file:
+ path: "{{ item }}"
+ state: directory
+ owner: root
+ group: prometheus
+ mode: "0750"
+ tags:
+ - role::prometheus
+ loop:
+ - "{{ prometheus_base_directory }}"
+ - "{{ prometheus_installation_directory }}"
+ - "{{ prometheus_base_release_dest }}"
+
+- name: Download Prometheus from GitHub
+ ansible.builtin.get_url:
+ url: "{{ prometheus_release_url }}"
+ checksum: sha256:{{ prometheus_release_sha256sum_url }}
+ dest: "{{ prometheus_release_tarball_dest }}"
+ owner: prometheus
+ group: prometheus
+ tags:
+ - role::prometheus
+
+- name: Uncompress Prometheus archive
+ ansible.builtin.unarchive:
+ src: "{{ prometheus_release_tarball_dest }}"
+ dest: "{{ prometheus_installation_directory }}"
+ owner: prometheus
+ group: prometheus
+ remote_src: true
+ tags:
+ - role::prometheus
+
- name: Configure prometheus command line options
lineinfile:
path: /etc/default/prometheus
@@ -59,3 +93,30 @@
- role::prometheus
notify:
- Reload the prometheus service
+
+- name: Create service override directory
+ ansible.builtin.file:
+ path: /etc/systemd/system/prometheus.service.d
+ state: directory
+ owner: root
+ group: root
+ mode: "0755"
+ tags:
+ - role::prometheus
+
+- name: Create service dropin
+ ansible.builtin.copy:
+ content: |
+ # Ansible managed
+ [Service]
+ ExecStart =
+ ExecStart = {{ prometheus_installation_directory }}/{{ prometheus_release_name }}/prometheus $ARGS
+ dest: /etc/systemd/system/prometheus.service.d/override.conf
+ owner: root
+ group: root
+ mode: "0444"
+ tags:
+ - role::prometheus
+ notify:
+ - Reload the systemd daemon
+ - Restart the prometheus service
diff --git a/ansible/roles/systemd/handlers/main.yml b/ansible/roles/systemd/handlers/main.yml
new file mode 100644
index 0000000..639db75
--- /dev/null
+++ b/ansible/roles/systemd/handlers/main.yml
@@ -0,0 +1,6 @@
+---
+- name: Reload the systemd daemon
+ systemd:
+ daemon_reload: true
+ tags:
+ - role::systemd