initial commit
This commit is contained in:
24
roles/monitoring/tasks/alertmanager.yml
Normal file
24
roles/monitoring/tasks/alertmanager.yml
Normal file
@@ -0,0 +1,24 @@
|
||||
- name: Install Alertmanager
|
||||
import_role:
|
||||
name: cloudalchemy.alertmanager
|
||||
public: yes
|
||||
vars:
|
||||
alertmanager_web_external_url: "http://{{ alertmanager_domain }}{{ alertmanager_web_path }}"
|
||||
alertmanager_config_flags_extra:
|
||||
web.route-prefix: /
|
||||
alertmanager_web_listen_address: "0.0.0.0:{{ alertmanager_port }}"
|
||||
|
||||
- name: Configure Nginx for Alertmaneger
|
||||
import_role:
|
||||
name: nginx
|
||||
vars:
|
||||
nginx_config_file: "{{ inventory_hostname }}.d/alertmanager.conf"
|
||||
nginx_server:
|
||||
locations:
|
||||
- path: "{{ alertmanager_web_path }}/"
|
||||
basic_auth:
|
||||
file: .htpasswd.alertmanager
|
||||
password: "{{ alertmanager_password }}"
|
||||
proxy_pass:
|
||||
port: "{{ alertmanager_port }}"
|
||||
path: /
|
||||
71
roles/monitoring/tasks/grafana.yml
Normal file
71
roles/monitoring/tasks/grafana.yml
Normal file
@@ -0,0 +1,71 @@
|
||||
- name: add grafana GPG apt key
|
||||
apt_key:
|
||||
url: https://packages.grafana.com/gpg.key
|
||||
state: present
|
||||
|
||||
- block:
|
||||
- name: add grafana repository
|
||||
apt_repository:
|
||||
repo: deb https://packages.grafana.com/oss/deb stable main
|
||||
state: present
|
||||
register: grafana_repo
|
||||
notify: restart grafana
|
||||
|
||||
- name: update apt cache
|
||||
apt:
|
||||
update_cache: yes
|
||||
cache_valid_time: 3600
|
||||
when: grafana_repo is changed
|
||||
|
||||
- name: install grafana package
|
||||
apt:
|
||||
pkg: grafana
|
||||
state: present
|
||||
notify: restart grafana
|
||||
|
||||
- name: copy grafana config
|
||||
template:
|
||||
src: grafana.ini.j2
|
||||
dest: /etc/grafana/grafana.ini
|
||||
become: yes
|
||||
notify: restart grafana
|
||||
|
||||
- name: enable grafana service
|
||||
systemd:
|
||||
name: grafana-server
|
||||
state: started
|
||||
enabled: yes
|
||||
register: grafana_service
|
||||
|
||||
- name: Configure Nginx for Grafana
|
||||
import_role:
|
||||
name: nginx
|
||||
vars:
|
||||
nginx_config_file: "{{ inventory_hostname }}.conf"
|
||||
nginx_server:
|
||||
name: "{{ inventory_hostname }}"
|
||||
port: 80
|
||||
locations:
|
||||
- path: "= /"
|
||||
return:
|
||||
code: 301
|
||||
url: "http://{{ inventory_hostname }}{{ grafana_web_path }}"
|
||||
includes:
|
||||
- "{{ nginx_config_dir }}/{{ inventory_hostname }}.d/*.conf"
|
||||
|
||||
- name: ensure nginx config directory exists
|
||||
file:
|
||||
path: "{{ nginx_config_dir }}/{{ inventory_hostname }}.d"
|
||||
state: directory
|
||||
|
||||
- include_role:
|
||||
name: nginx
|
||||
tasks_from: configure
|
||||
vars:
|
||||
nginx_config_file: "{{ inventory_hostname }}.d/grafana.conf"
|
||||
nginx_server:
|
||||
locations:
|
||||
- path: "{{ grafana_web_path }}/"
|
||||
proxy_pass:
|
||||
port: "{{ grafana_port }}"
|
||||
path: /
|
||||
8
roles/monitoring/tasks/main.yml
Normal file
8
roles/monitoring/tasks/main.yml
Normal file
@@ -0,0 +1,8 @@
|
||||
---
|
||||
- import_tasks: grafana.yml
|
||||
become: yes
|
||||
tags: grafana
|
||||
- import_tasks: alertmanager.yml
|
||||
tags: alertmanager
|
||||
- import_tasks: prometheus.yml
|
||||
tags: prometheus
|
||||
26
roles/monitoring/tasks/prometheus.yml
Normal file
26
roles/monitoring/tasks/prometheus.yml
Normal file
@@ -0,0 +1,26 @@
|
||||
- name: Install Prometheus
|
||||
import_role:
|
||||
name: cloudalchemy.prometheus
|
||||
public: yes
|
||||
vars:
|
||||
prometheus_config_file: "prometheus_custom.yml.j2"
|
||||
prometheus_alert_rules: []
|
||||
prometheus_web_external_url: "http://{{ prometheus_domain }}{{ prometheus_web_path }}"
|
||||
prometheus_config_flags_extra:
|
||||
web.route-prefix: /
|
||||
prometheus_web_listen_address: "0.0.0.0:{{ prometheus_port }}"
|
||||
|
||||
- name: Configure Nginx for Prometheus
|
||||
import_role:
|
||||
name: nginx
|
||||
vars:
|
||||
nginx_config_file: "{{ inventory_hostname }}.d/prometheus.conf"
|
||||
nginx_server:
|
||||
locations:
|
||||
- path: "{{ prometheus_web_path }}/"
|
||||
basic_auth:
|
||||
file: .htpasswd.prometheus
|
||||
password: "{{ prometheus_password }}"
|
||||
proxy_pass:
|
||||
port: "{{ prometheus_port }}"
|
||||
path: /
|
||||
Reference in New Issue
Block a user