Move grafana to forrest
This commit is contained in:
parent
a79e54d45a
commit
c7fba8107a
11 changed files with 105 additions and 69 deletions
1
ansible/host_vars/forrest.yml
Normal file
1
ansible/host_vars/forrest.yml
Normal file
|
@ -0,0 +1 @@
|
|||
expose_ssh: true
|
|
@ -5,3 +5,4 @@ protected_ip: "{{ pve_hosts.pve_docker.internal_ip }}"
|
|||
|
||||
traefik_provider_jellyfin: true
|
||||
traefik_provider_homeassistant: true
|
||||
traefik_provider_grafana: true
|
||||
|
|
|
@ -40,7 +40,6 @@
|
|||
- hosts: pve-docker
|
||||
roles:
|
||||
- pve_docker
|
||||
- grafana
|
||||
- gitea
|
||||
- duplicati
|
||||
- yourls
|
||||
|
@ -60,3 +59,7 @@
|
|||
- pve
|
||||
- zfs
|
||||
- pve_nebula_route
|
||||
|
||||
- hosts: forrest
|
||||
roles:
|
||||
- forrest
|
||||
|
|
11
ansible/roles/forrest/handlers/main.yml
Normal file
11
ansible/roles/forrest/handlers/main.yml
Normal file
|
@ -0,0 +1,11 @@
|
|||
- name: restart grafana
|
||||
service:
|
||||
name: grafana-server
|
||||
state: restarted
|
||||
become: true
|
||||
|
||||
- name: restart influxdb
|
||||
service:
|
||||
name: influxdb
|
||||
state: restarted
|
||||
become: true
|
65
ansible/roles/forrest/tasks/main.yml
Normal file
65
ansible/roles/forrest/tasks/main.yml
Normal file
|
@ -0,0 +1,65 @@
|
|||
- name: Add grafana repository
|
||||
apt_repository:
|
||||
repo: deb https://packages.grafana.com/oss/deb stable main
|
||||
state: present
|
||||
filename: grafana
|
||||
|
||||
- name: Add influxdb repository
|
||||
apt_repository:
|
||||
repo: deb https://repos.influxdata.com/debian buster stable
|
||||
state: present
|
||||
filename: influxdb
|
||||
|
||||
- name: Install grafana
|
||||
package:
|
||||
name: grafana
|
||||
become: true
|
||||
|
||||
- name: Install influxdb
|
||||
package:
|
||||
name: grafana
|
||||
become: true
|
||||
loop:
|
||||
- influxdb
|
||||
- chronograf
|
||||
|
||||
- name: Enable grafana
|
||||
service:
|
||||
name: grafana-service
|
||||
enabled: true
|
||||
become: true
|
||||
|
||||
- name: Enable influxdb
|
||||
service:
|
||||
name: influxdb
|
||||
enabled: true
|
||||
become: true
|
||||
|
||||
- name: Configure influxdb
|
||||
ini_file:
|
||||
path: /etc/influxdb/influxdb.conf
|
||||
mode: "0644"
|
||||
section: "{{ item.section }}"
|
||||
option: "{{ item.option }}"
|
||||
value: "{{ item.value }}"
|
||||
become: true
|
||||
notify: restart influxdb
|
||||
loop_control:
|
||||
label: "{{ item.section }}.{{ item.option }}={{ item.value }}"
|
||||
loop:
|
||||
- {section: http, option: bind-address, value: ":8086"}
|
||||
- {section: http, option: auth-enabled, value: "true"}
|
||||
|
||||
- name: Configure grafana
|
||||
ini_file:
|
||||
path: /etc/grafana/grafana.ini
|
||||
mode: "0644"
|
||||
section: "{{ item.section }}"
|
||||
option: "{{ item.option }}"
|
||||
value: "{{ item.value }}"
|
||||
become: true
|
||||
notify: restart grafana
|
||||
loop_control:
|
||||
label: "{{ item.section }}.{{ item.option }}={{ item.value }}"
|
||||
loop:
|
||||
- {section: server, option: domain, value: grafana.jakehoward.tech}
|
|
@ -1,43 +0,0 @@
|
|||
version: "2.3"
|
||||
|
||||
services:
|
||||
grafana:
|
||||
image: grafana/grafana:latest
|
||||
environment:
|
||||
- TZ=Europe/London
|
||||
- GF_DATABASE_URL=postgres://grafana:grafana@db/grafana
|
||||
- GF_RENDERING_SERVER_URL=http://renderer:8081/render
|
||||
- GF_RENDERING_CALLBACK_URL=http://grafana:3000/
|
||||
volumes:
|
||||
- ./grafana:/var/lib/grafana
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- db
|
||||
- renderer
|
||||
networks:
|
||||
- default
|
||||
- grafana
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.routers.grafana.rule=Host(`grafana.jakehoward.tech`)
|
||||
- traefik.http.routers.grafana.tls.certresolver=le
|
||||
- traefik.http.routers.grafana.middlewares=compress@file
|
||||
|
||||
db:
|
||||
image: postgres:12-alpine
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ./postgres:/var/lib/postgresql/data
|
||||
environment:
|
||||
- POSTGRES_PASSWORD=grafana
|
||||
- POSTGRES_USER=grafana
|
||||
|
||||
renderer:
|
||||
image: grafana/grafana-image-renderer:latest
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- BROWSER_TZ=Europe/London
|
||||
|
||||
networks:
|
||||
grafana:
|
||||
external: true
|
|
@ -1,4 +0,0 @@
|
|||
- name: restart grafana
|
||||
shell:
|
||||
chdir: /opt/grafana
|
||||
cmd: "{{ docker_update_command }}"
|
|
@ -1,21 +0,0 @@
|
|||
- name: Create install directory
|
||||
file:
|
||||
path: /opt/grafana
|
||||
state: directory
|
||||
owner: "{{ docker_user.name }}"
|
||||
mode: "{{ docker_compose_directory_mask }}"
|
||||
become: true
|
||||
|
||||
- name: Create grafana network
|
||||
docker_network:
|
||||
name: grafana
|
||||
|
||||
- name: Install compose file
|
||||
template:
|
||||
src: files/docker-compose.yml
|
||||
dest: /opt/grafana/docker-compose.yml
|
||||
mode: "{{ docker_compose_file_mask }}"
|
||||
owner: "{{ docker_user.name }}"
|
||||
validate: /usr/bin/docker-compose -f %s config
|
||||
notify: restart grafana
|
||||
become: true
|
|
@ -2,5 +2,6 @@ traefik_influx_db_dir: ./influxdb
|
|||
|
||||
traefik_provider_jellyfin: false
|
||||
traefik_provider_homeassistant: false
|
||||
traefik_provider_grafana: false
|
||||
|
||||
with_traefik_pages: false
|
||||
|
|
12
ansible/roles/traefik/files/file-provider-grafana.yml
Normal file
12
ansible/roles/traefik/files/file-provider-grafana.yml
Normal file
|
@ -0,0 +1,12 @@
|
|||
http:
|
||||
routers:
|
||||
router-grafana:
|
||||
rule: Host(`grafana.jakehoward.tech`)
|
||||
service: service-grafana
|
||||
tls:
|
||||
certResolver: le
|
||||
services:
|
||||
service-grafana:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: http://{{ pve_hosts.forrest.internal_ip }}:3000
|
|
@ -67,3 +67,13 @@
|
|||
notify: restart traefik
|
||||
when: traefik_provider_jellyfin
|
||||
become: true
|
||||
|
||||
- name: Install grafana provider
|
||||
template:
|
||||
src: files/file-provider-grafana.yml
|
||||
dest: /opt/traefik/traefik/conf/grafana.yml
|
||||
mode: "{{ docker_compose_file_mask }}"
|
||||
owner: "{{ docker_user.name }}"
|
||||
notify: restart traefik
|
||||
when: traefik_provider_grafana
|
||||
become: true
|
||||
|
|
Loading…
Reference in a new issue