diff options
author | 2024-05-30 15:59:04 +0200 | |
---|---|---|
committer | 2024-05-30 15:59:04 +0200 | |
commit | 6496fa65823344cffd53861c7b1fadc920b0cea9 (patch) | |
tree | f92a6a8524c94618645ef793f1244e9636893027 | |
parent | Add 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.yml | 2 | ||||
-rw-r--r-- | ansible/roles/prometheus/defaults/main.yml | 13 | ||||
-rw-r--r-- | ansible/roles/prometheus/meta/main.yml | 3 | ||||
-rw-r--r-- | ansible/roles/prometheus/tasks/main.yml | 63 | ||||
-rw-r--r-- | ansible/roles/systemd/handlers/main.yml | 6 |
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 |