104 lines
2.1 KiB
YAML
104 lines
2.1 KiB
YAML
---
|
|
- name: Install monitoring stack
|
|
community.general.pacman:
|
|
name:
|
|
- prometheus
|
|
- prometheus-node-exporter
|
|
- grafana
|
|
- loki
|
|
- promtail
|
|
- alertmanager
|
|
state: present
|
|
|
|
- name: Create Loki data directories
|
|
file:
|
|
path: "{{ item }}"
|
|
state: directory
|
|
owner: loki
|
|
group: loki
|
|
mode: "0750"
|
|
loop:
|
|
- /var/lib/loki
|
|
- /var/lib/loki/chunks
|
|
- /var/lib/loki/rules
|
|
|
|
- name: Create Prometheus rules directory
|
|
file:
|
|
path: /etc/prometheus/rules
|
|
state: directory
|
|
owner: prometheus
|
|
group: prometheus
|
|
mode: "0750"
|
|
|
|
- name: Create promtail data directory
|
|
file:
|
|
path: /var/lib/promtail
|
|
state: directory
|
|
owner: promtail
|
|
group: promtail
|
|
mode: "0750"
|
|
|
|
- name: Create Grafana provisioning directory
|
|
file:
|
|
path: /etc/grafana/provisioning/datasources
|
|
state: directory
|
|
owner: grafana
|
|
group: grafana
|
|
mode: "0750"
|
|
|
|
- name: Configure Prometheus
|
|
template:
|
|
src: prometheus.yml.j2
|
|
dest: /etc/prometheus/prometheus.yml
|
|
owner: prometheus
|
|
group: prometheus
|
|
mode: "0640"
|
|
notify: Restart prometheus
|
|
|
|
- name: Configure Loki
|
|
template:
|
|
src: loki.yaml.j2
|
|
dest: /etc/loki/loki.yaml
|
|
owner: loki
|
|
group: loki
|
|
mode: "0640"
|
|
notify: Restart loki
|
|
|
|
- name: Configure Promtail
|
|
template:
|
|
src: promtail.yaml.j2
|
|
dest: /etc/loki/promtail.yaml
|
|
owner: root
|
|
group: root
|
|
mode: "0644"
|
|
notify: Restart promtail
|
|
|
|
- name: Configure Grafana datasources
|
|
template:
|
|
src: grafana-datasources.yaml.j2
|
|
dest: /etc/grafana/provisioning/datasources/homelab.yaml
|
|
owner: grafana
|
|
group: grafana
|
|
mode: "0640"
|
|
notify: Restart grafana
|
|
|
|
- name: Set Grafana provisioning path
|
|
lineinfile:
|
|
path: /etc/grafana.ini
|
|
regexp: '^;?provisioning\s*='
|
|
line: "provisioning = /etc/grafana/provisioning"
|
|
notify: Restart grafana
|
|
|
|
- name: Enable and start all monitoring services
|
|
systemd:
|
|
name: "{{ item }}"
|
|
enabled: true
|
|
state: started
|
|
loop:
|
|
- prometheus
|
|
- prometheus-node-exporter
|
|
- grafana
|
|
- loki
|
|
- promtail
|
|
- alertmanager
|