Add Docker Grafana role and deployment playbook
This commit is contained in:
parent
31f4c2ba19
commit
6292c5b552
11
playbooks/deploy_grafana_docker.yaml
Normal file
11
playbooks/deploy_grafana_docker.yaml
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
- name: setup grafana (docker)
|
||||||
|
hosts: all
|
||||||
|
become: true
|
||||||
|
vars:
|
||||||
|
grafana_domain: "{{ domain }}"
|
||||||
|
grafana_workspace: /opt/grafana
|
||||||
|
grafana_admin_user: admin
|
||||||
|
grafana_admin_password: admin
|
||||||
|
roles:
|
||||||
|
- vhosts/docker/
|
||||||
|
- docker/grafana/
|
||||||
@ -1,3 +1,20 @@
|
|||||||
# grafana (docker)
|
# Grafana (Docker)
|
||||||
|
|
||||||
Placeholder role for docker-compose style deployment of grafana.
|
This role deploys Grafana with Docker Compose, creating a persistent data directory and templating a simple `docker-compose.yaml` into `{{ grafana_workspace }}`.
|
||||||
|
|
||||||
|
## Defaults
|
||||||
|
- `grafana_workspace`: `/opt/grafana`
|
||||||
|
- `grafana_image`: `grafana/grafana:10.4.6`
|
||||||
|
- `grafana_domain`: `grafana.svc.plus`
|
||||||
|
- `grafana_protocol`: `http`
|
||||||
|
- `grafana_host_port`: `3000`
|
||||||
|
- `grafana_admin_user`: `admin`
|
||||||
|
- `grafana_admin_password`: `admin`
|
||||||
|
|
||||||
|
## Run
|
||||||
|
|
||||||
|
Example playbook execution:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ansible-playbook -i inventory.ini playbooks/deploy_grafana_docker.yaml -e "domain=grafana.example.com" -l grafana.example.com
|
||||||
|
```
|
||||||
|
|||||||
9
playbooks/roles/docker/grafana/defaults/main.yml
Normal file
9
playbooks/roles/docker/grafana/defaults/main.yml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
---
|
||||||
|
# Default settings for Grafana Docker deployment
|
||||||
|
grafana_workspace: /opt/grafana
|
||||||
|
grafana_image: grafana/grafana:10.4.6
|
||||||
|
grafana_domain: grafana.svc.plus
|
||||||
|
grafana_protocol: http
|
||||||
|
grafana_host_port: 3000
|
||||||
|
grafana_admin_user: admin
|
||||||
|
grafana_admin_password: admin
|
||||||
@ -1,5 +1,33 @@
|
|||||||
---
|
---
|
||||||
# TODO: implement docker deployment tasks
|
- name: Ensure Grafana directories exist
|
||||||
- name: Placeholder task
|
become: true
|
||||||
debug:
|
ansible.builtin.file:
|
||||||
msg: "Role placeholder. Implement docker deployment tasks."
|
path: "{{ item }}"
|
||||||
|
state: directory
|
||||||
|
mode: "0755"
|
||||||
|
loop:
|
||||||
|
- "{{ grafana_workspace }}"
|
||||||
|
- "{{ grafana_workspace }}/data"
|
||||||
|
- "{{ grafana_workspace }}/provisioning"
|
||||||
|
|
||||||
|
- name: Ensure Grafana data directory ownership
|
||||||
|
become: true
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: "{{ grafana_workspace }}/data"
|
||||||
|
state: directory
|
||||||
|
owner: "472"
|
||||||
|
group: "472"
|
||||||
|
recurse: true
|
||||||
|
|
||||||
|
- name: Template Grafana Docker Compose file
|
||||||
|
become: true
|
||||||
|
ansible.builtin.template:
|
||||||
|
src: docker-compose.yaml.j2
|
||||||
|
dest: "{{ grafana_workspace }}/docker-compose.yaml"
|
||||||
|
mode: "0644"
|
||||||
|
|
||||||
|
- name: Launch Grafana with Docker Compose
|
||||||
|
become: true
|
||||||
|
ansible.builtin.command: docker compose -f {{ grafana_workspace }}/docker-compose.yaml up -d
|
||||||
|
args:
|
||||||
|
chdir: "{{ grafana_workspace }}"
|
||||||
|
|||||||
@ -0,0 +1,17 @@
|
|||||||
|
version: '3.9'
|
||||||
|
services:
|
||||||
|
grafana:
|
||||||
|
image: "{{ grafana_image }}"
|
||||||
|
container_name: grafana
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
GF_SECURITY_ADMIN_USER: "{{ grafana_admin_user }}"
|
||||||
|
GF_SECURITY_ADMIN_PASSWORD: "{{ grafana_admin_password }}"
|
||||||
|
GF_SERVER_DOMAIN: "{{ grafana_domain }}"
|
||||||
|
GF_SERVER_ROOT_URL: "{{ grafana_protocol }}://{{ grafana_domain }}/"
|
||||||
|
ports:
|
||||||
|
- "{{ grafana_host_port }}:3000"
|
||||||
|
volumes:
|
||||||
|
- "{{ grafana_workspace }}/data:/var/lib/grafana"
|
||||||
|
- "{{ grafana_workspace }}/provisioning:/etc/grafana/provisioning"
|
||||||
|
user: "472:472"
|
||||||
Loading…
Reference in New Issue
Block a user