diff options
| -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 | 
