From 5dcdcabd6cd7c4a7aeb86c4ad5882ba9469668b6 Mon Sep 17 00:00:00 2001 From: Thomas Date: Wed, 3 Jan 2024 14:07:41 +0100 Subject: [PATCH] add prometheus as container --- roles/monitoring/defaults/main.yml | 4 ++++ roles/monitoring/handlers/main.yml | 10 ++++----- roles/monitoring/tasks/main.yml | 17 +++++--------- .../templates/docker-compose.yml.j2 | 22 +++++++++++++++++++ 4 files changed, 36 insertions(+), 17 deletions(-) diff --git a/roles/monitoring/defaults/main.yml b/roles/monitoring/defaults/main.yml index e687314..ab3e39e 100644 --- a/roles/monitoring/defaults/main.yml +++ b/roles/monitoring/defaults/main.yml @@ -3,4 +3,8 @@ monitoring_domain: monitoring.{{ app_domain }} grafana_install_location: "/srv/grafana" grafana_data_location: "{{ grafana_install_location }}/data" +prometheus_install_location: "/srv/prometheus" +prometheus_data_location: "{{ prometheus_install_location }}/data" +prometheus_config_location: "{{ prometheus_install_location }}/prometheus.yml" + grafana_port: "3000" diff --git a/roles/monitoring/handlers/main.yml b/roles/monitoring/handlers/main.yml index 74eb8a0..ad29cea 100644 --- a/roles/monitoring/handlers/main.yml +++ b/roles/monitoring/handlers/main.yml @@ -1,9 +1,4 @@ -- name: reload prometheus - ansible.builtin.service: - name: prometheus - state: restarted - -- name: reload grafana +- name: reload monitoring community.docker.docker_stack: state: present name: "monitoring" @@ -14,3 +9,6 @@ - name: wait for grafana ansible.builtin.command: "docker run --rm -i -v /var/run/docker.sock:/var/run/docker.sock sudobmitch/docker-stack-wait -n grafana monitoring" + +- name: wait for prometheus + ansible.builtin.command: "docker run --rm -i -v /var/run/docker.sock:/var/run/docker.sock sudobmitch/docker-stack-wait -n grafana monitoring" diff --git a/roles/monitoring/tasks/main.yml b/roles/monitoring/tasks/main.yml index 88de866..6d96e2a 100644 --- a/roles/monitoring/tasks/main.yml +++ b/roles/monitoring/tasks/main.yml @@ -1,9 +1,3 @@ -- name: Install packages - ansible.builtin.package: - name: - - prometheus - state: present - - name: Create install directory ansible.builtin.file: path: "{{ item }}" @@ -13,6 +7,7 @@ group: "root" with_items: - "{{ grafana_install_location }}" + - "{{ prometheus_install_location }}" become: true - name: Create data directories @@ -24,9 +19,8 @@ group: "root" with_items: - "{{ grafana_data_location }}" + - "{{ prometheus_data_location }}" become: true - tags: - - grafana - name: Create docker-compose.yml ansible.builtin.template: @@ -38,18 +32,19 @@ validate: docker-compose -f %s config -q become: true notify: - - reload grafana + - reload monitoring - wait for grafana - name: Copy prometheus config ansible.builtin.copy: src: prometheus.yml - dest: /etc/prometheus/prometheus.yml + dest: "{{ prometheus_config_location }}" owner: root group: root mode: "0644" notify: - - reload prometheus + - reload monitoring + - wait for prometheus # - name: Expose DB tasks # ansible.builtin.include_tasks: expose_db.yml # vars: diff --git a/roles/monitoring/templates/docker-compose.yml.j2 b/roles/monitoring/templates/docker-compose.yml.j2 index f7a0b10..6583ee7 100644 --- a/roles/monitoring/templates/docker-compose.yml.j2 +++ b/roles/monitoring/templates/docker-compose.yml.j2 @@ -35,6 +35,28 @@ services: delay: 5s max_attempts: 3 window: 120s + prometheus: + image: prom/prometheus + networks: + {{ db_network }}: + volumes: + - "{{prometheus_data_location}}:/prometheus" + - "{{prometheus_config_location}}:/etc/prometheus/prometheus.yml" + restart: always + deploy: + update_config: + order: start-first + failure_action: rollback + delay: 10s + rollback_config: + parallelism: 0 + order: start-first + restart_policy: + condition: any + delay: 5s + max_attempts: 3 + window: 120s + networks: {{ proxy_network }}: