mirror of
https://github.com/GeekOops/geekoops-grafana.git
synced 2024-05-07 23:33:29 +00:00
first commit
This commit is contained in:
commit
927300877c
23
README.md
Normal file
23
README.md
Normal file
|
@ -0,0 +1,23 @@
|
|||
# geekoops-grafana
|
||||
|
||||
Easy ansible role for setup of `grafana` with a custom backend. Currently only `influxdb` is supported
|
||||
|
||||
|
||||
## Role Variables
|
||||
|
||||
|
||||
## Example Playbook
|
||||
|
||||
- hosts: jellyfish
|
||||
roles:
|
||||
- { role: geekoops-grafana }
|
||||
|
||||
## License
|
||||
|
||||
MIT
|
||||
|
||||
## Author Information
|
||||
|
||||
phoenix
|
||||
|
||||
Have a lot of fun!
|
18
defaults/main.yml
Normal file
18
defaults/main.yml
Normal file
|
@ -0,0 +1,18 @@
|
|||
---
|
||||
# defaults file for geekoops-grafana
|
||||
|
||||
config_firewall: false
|
||||
firewall_zone: public
|
||||
open_grafana_port: false
|
||||
|
||||
grafana_port: 3000
|
||||
|
||||
influxdb: false
|
||||
influxdb_port: 8086
|
||||
influxdb_bind: ""
|
||||
open_influxdb_port: false
|
||||
influxdb_collectd: false
|
||||
influxdb_collectd_database: "collectd"
|
||||
influxdb_collectd_port: 25826
|
||||
influxdb_collectd_bind: ""
|
||||
open_collectd_port: false
|
14
handlers/main.yml
Normal file
14
handlers/main.yml
Normal file
|
@ -0,0 +1,14 @@
|
|||
---
|
||||
# handlers file for geekoops-grafana
|
||||
|
||||
- name: reload firewalld
|
||||
shell: firewall-cmd --reload
|
||||
|
||||
- name: restart influxdb
|
||||
service:
|
||||
name: influxdb
|
||||
state: restarted
|
||||
- name: restart grafana
|
||||
service:
|
||||
name: grafana-server
|
||||
state: restarted
|
23
meta/main.yml
Normal file
23
meta/main.yml
Normal file
|
@ -0,0 +1,23 @@
|
|||
---
|
||||
galaxy_info:
|
||||
author: Felix Niederwanger
|
||||
description: Configurable grafana installation role
|
||||
company: SUSE
|
||||
issue_tracker_url: https://github.com/GeekOops/geekoops-grafana/issues
|
||||
|
||||
license: license MIT
|
||||
|
||||
min_ansible_version: 2.9
|
||||
|
||||
# To view available platforms and versions (or releases), visit:
|
||||
# https://galaxy.ansible.com/api/v1/platforms/
|
||||
#
|
||||
platforms:
|
||||
- name: opensuse
|
||||
versions:
|
||||
- 15.2
|
||||
|
||||
galaxy_tags:
|
||||
- grafana
|
||||
|
||||
dependencies: []
|
24
tasks/grafana.yml
Normal file
24
tasks/grafana.yml
Normal file
|
@ -0,0 +1,24 @@
|
|||
---
|
||||
|
||||
- name: Install grafana
|
||||
package:
|
||||
name: "{{ packages_grafana }}"
|
||||
state: present
|
||||
tags: ['grafana']
|
||||
|
||||
- name: Ensure grafana is started
|
||||
systemd:
|
||||
name: grafana-server
|
||||
state: started
|
||||
enabled: true
|
||||
tags: ['grafana']
|
||||
|
||||
- name: Ensure grafana firewall port is open
|
||||
firewalld:
|
||||
zone: "{{ firewall_zone }}"
|
||||
port: "{{grafana_port}}/tcp"
|
||||
permanent: yes
|
||||
state: enabled
|
||||
when: config_firewall and open_grafana_port
|
||||
notify: reload firewalld
|
||||
tags: ['grafana', 'firewalld']
|
46
tasks/influxdb.yml
Normal file
46
tasks/influxdb.yml
Normal file
|
@ -0,0 +1,46 @@
|
|||
---
|
||||
|
||||
- name: Install influxdb
|
||||
package:
|
||||
name: "{{ packages_influxdb }}"
|
||||
state: present
|
||||
tags: ['influxdb']
|
||||
|
||||
- name: Ensure influxdb is configured
|
||||
template:
|
||||
src: influxdb_config.toml.j2
|
||||
dest: /etc/influxdb/config.toml
|
||||
owner: root
|
||||
group: influxdb
|
||||
mode: 0640
|
||||
tags: ['influxdb']
|
||||
notify: restart influxdb
|
||||
|
||||
- name: Ensure influxdb is enabled
|
||||
systemd:
|
||||
name: influxdb
|
||||
state: started
|
||||
enabled: true
|
||||
tags: ['influxdb']
|
||||
|
||||
- name: Ensure influxdb firewall port is open
|
||||
firewalld:
|
||||
zone: "{{ firewall_zone }}"
|
||||
port: "{{influxdb_port}}/tcp"
|
||||
permanent: yes
|
||||
state: enabled
|
||||
when: config_firewall and open_influxdb_port
|
||||
notify: reload firewalld
|
||||
tags: ['influxdb', 'firewalld']
|
||||
|
||||
- name: Ensure collectd firewall port is open
|
||||
firewalld:
|
||||
zone: "{{ firewall_zone }}"
|
||||
port: "{{influxdb_collectd_port}}/udp"
|
||||
permanent: yes
|
||||
state: enabled
|
||||
when: config_firewall and open_collectd_port
|
||||
notify: reload firewalld
|
||||
tags: ['influxdb', 'firewalld']
|
||||
|
||||
|
11
tasks/main.yml
Normal file
11
tasks/main.yml
Normal file
|
@ -0,0 +1,11 @@
|
|||
---
|
||||
# tasks file for geekoops-grafana
|
||||
|
||||
# Distribution specific vars are ALWAYS needed, so don't forget the tags here
|
||||
- name: include distribution specific vars
|
||||
include_vars: "{{ansible_distribution}}_{{ansible_distribution_version}}.yml"
|
||||
tags: ['grafana']
|
||||
|
||||
- include: influxdb.yml
|
||||
when: influxdb == true
|
||||
- include: grafana.yml
|
29
templates/influxdb_config.toml.j2
Normal file
29
templates/influxdb_config.toml.j2
Normal file
|
@ -0,0 +1,29 @@
|
|||
### InfluxDB config file managed by the grafana-influxdb ansible role
|
||||
|
||||
[meta]
|
||||
# Where the metadata/raft database is stored
|
||||
dir = "/var/lib/influxdb/meta"
|
||||
|
||||
[data]
|
||||
# The directory where the TSM storage engine stores TSM files.
|
||||
dir = "/var/lib/influxdb/data"
|
||||
|
||||
# The directory where the TSM storage engine stores WAL files.
|
||||
wal-dir = "/var/lib/influxdb/wal"
|
||||
|
||||
[http]
|
||||
enabled = true
|
||||
flux-enabled = false
|
||||
bind-address = "{{influxdb_bind}}:{{influxdb_port}}"
|
||||
|
||||
[logging]
|
||||
format = "auto"
|
||||
level = "error"
|
||||
|
||||
{% if influxdb_collectd %}
|
||||
[[collectd]]
|
||||
enabled = true
|
||||
bind-address = "{{influxdb_collectd_bind}}:{{influxdb_collectd_port}}"
|
||||
database = "{{influxdb_collectd_database}}"
|
||||
typesdb = "/usr/share/collectd/types.db"
|
||||
{% endif %}
|
2
vars/main.yml
Normal file
2
vars/main.yml
Normal file
|
@ -0,0 +1,2 @@
|
|||
---
|
||||
# vars file for geekoops-grafana
|
3
vars/openSUSE Leap_15.2.yml
Normal file
3
vars/openSUSE Leap_15.2.yml
Normal file
|
@ -0,0 +1,3 @@
|
|||
---
|
||||
packages_grafana: ['grafana', 'grafana-piechart-panel', 'grafana-status-panel']
|
||||
packages_influxdb: ['influxdb']
|
Loading…
Reference in a new issue