grafana-ansible-collection/roles/grafana/templates/grafana.ini.j2
2023-06-21 15:00:55 +02:00

204 lines
4.8 KiB
Django/Jinja

{{ ansible_managed | comment }}
# More informations:
# http://docs.grafana.org/installation/configuration
# https://github.com/grafana/grafana/blob/master/conf/sample.ini
app_mode = production
instance_name = {{ grafana_instance }}
# Directories
[paths]
data = {{ grafana_data_dir }}
logs = {{ grafana_logs_dir }}
plugins = {{ grafana_data_dir }}/plugins
; datasources = conf/datasources
# HTTP options
[server]
{% if grafana_server.protocol is undefined or grafana_server.protocol in ['http', 'https'] %}
http_addr = {{ grafana_address }}
http_port = {{ grafana_port }}
{% endif %}
domain = {{ grafana_domain }}
root_url = {{ grafana_url }}
{% for k,v in grafana_server.items() %}
{% if not k in ['http_addr', 'http_port', 'domain', 'root_url'] %}
{{ k }} = {{ v }}
{% endif %}
{% endfor %}
# Database
[database]
{% for k,v in grafana_database.items() %}
{% if k == 'password' %}
{{ k }} = """{{ v }}"""
{% else %}
{{ k }} = {{ v }}
{% endif %}
{% endfor %}
# Remote cache
[remote_cache]
{% for k,v in grafana_remote_cache.items() %}
{{ k }} = {{ v }}
{% endfor %}
# Security
[security]
{% for k,v in grafana_security.items() %}
{{ k }} = {{ v }}
{% endfor %}
# Users management and registration
{% if grafana_users != {} %}
[users]
{% for k,v in grafana_users.items() %}
{{ k }} = {{ v }}
{% endfor %}
{% endif %}
[emails]
welcome_email_on_sign_up = {{ grafana_welcome_email_on_sign_up }}
# Authentication
{% if grafana_auth != {} %}
[auth]
disable_login_form = {{ grafana_auth.disable_login_form | default('False') }}
oauth_auto_login = {{ grafana_auth.oauth_auto_login | default('False') }}
disable_signout_menu = {{ grafana_auth.disable_signout_menu | default('False') }}
signout_redirect_url = {{ grafana_auth.signout_redirect_url | default('') }}
{% for section, options in grafana_auth.items() %}
{% if options is mapping %}
[auth.{{ section }}]
{% if "enabled" not in options %}
enabled = True
{% endif %}
{% for k, v in options.items() %}
{{ k }} = {{ v }}
{% endfor %}
{% else %}
{{ section }} = {{ options }}
{% endif %}
{% endfor %}
{% endif %}
# Session
{% if grafana_session != {} %}
[session]
{% for k,v in grafana_session.items() %}
{{ k }} = {{ v }}
{% endfor %}
{% endif %}
# Analytics
[analytics]
reporting_enabled = "{{ grafana_analytics.reporting_enabled | default(True) }}"
{% if grafana_analytics.google_analytics_ua_id is defined and grafana_analytics.google_analytics_ua_id != '' %}
google_analytics_ua_id = "{{ grafana_analytics.google_analytics_ua_id }}"
{% endif %}
# Dashboards
[dashboards]
versions_to_keep = 20
[dashboards.json]
enabled = true
path = {{ grafana_data_dir }}/dashboards
# Alerting
[alerting]
{% if grafana_alerting != {} %}
enabled = true
{% for k,v in grafana_alerting.items() %}
{% if k != 'enabled' %}
{{ k }} = {{ v }}
{% endif %}
{% endfor %}
{% else %}
enabled = false
{% endif %}
# SMTP and email config
{% if grafana_smtp != {} %}
[smtp]
enabled = True
{% for k,v in grafana_smtp.items() %}
{% if k == 'enabled' %}{% endif %}
{% if k == 'password' %}
{{ k }} = """{{ v }}"""
{% else %}
{{ k }} = {{ v }}
{% endif %}
{% endfor %}
{% endif %}
# Logging
[log]
mode = {{ grafana_log.mode | default('console, file') }}
level = {{ grafana_log.level | default('info') }}
# Metrics
[metrics]
{% if grafana_metrics != {} %}
enabled = true
interval_seconds = {{ grafana_metrics.interval_seconds | default(10) }}
{% if grafana_metrics.basic_auth_username is defined %}
basic_auth_username = {{ grafana_metrics.basic_auth_username }}
{% endif %}
{% if grafana_metrics.basic_auth_password is defined %}
basic_auth_password = """{{ grafana_metrics.basic_auth_password }}"""
{% endif %}
{% if grafana_metrics.graphite is defined %}
[metrics.graphite]
address = {{ grafana_metrics.graphite.address }}
prefix = {{ grafana_metrics.graphite.prefix }}
{% endif %}
{% else %}
enabled = false
{% endif %}
# Tracing
{% if grafana_tracing != {} %}
[tracing.jaeger]
{% for k,v in grafana_tracing.items() %}
{{ k }} = {{ v }}
{% endfor %}
{% endif %}
# Grafana.com configuration
[grafana_com]
url = https://grafana.com
# Snapshots
{% if grafana_snapshots != {} %}
[snapshots]
{% for k,v in grafana_snapshots.items() %}
{{ k }} = {{ v }}
{% endfor %}
{% endif %}
# External image storage
{% if grafana_image_storage != {} %}
[external_image_storage]
provider = {{ grafana_image_storage.provider }}
[external_image_storage.{{ grafana_image_storage.provider }}]
{% for k,v in grafana_image_storage.items() %}
{% if k != 'provider' %}
{{ k }} = {{ v }}
{% endif %}
{% endfor %}
{% endif %}
# Panels
{% if grafana_panels != {} %}
[panels]
{% for k,v in grafana_panels.items() %}
{{ k }} = {{ v }}
{% endfor %}
{% endif %}
{% for section in grafana_extra_config %}
[{{ section }}]
{% for entry, value in grafana_extra_config[section].items() %}
{{ entry }} = {{ value }}
{% endfor %}