diff --git a/grafana/tasks/main.yml b/grafana/tasks/main.yml index 6ddae6bf13813ac0f02aadf1720c5456fd95c643..4b961b97846e93d615a48e8c70b2b283cd5a6b15 100644 --- a/grafana/tasks/main.yml +++ b/grafana/tasks/main.yml @@ -81,6 +81,15 @@ - config - grafana +- import_tasks: postgres.yml + when: + - grafana_database is defined + - grafana_database.type == "postgres" + - grafana_database.host[0] == '/' + tags: + - grafana + - postgres + - meta: flush_handlers - name: Enable and start Grafana diff --git a/grafana/tasks/postgres.yml b/grafana/tasks/postgres.yml new file mode 100644 index 0000000000000000000000000000000000000000..f69793bb92f49d36d184073ab8ee5fc288d41a62 --- /dev/null +++ b/grafana/tasks/postgres.yml @@ -0,0 +1,23 @@ +--- + +- become: true + become_user: postgres + block: + - name: Create postgres user + postgresql_user: + name: grafana + state: present + + - name: Create database + postgresql_db: + name: grafana + owner: grafana + state: present + + - name: Grant database privileges + postgresql_privs: + database: grafana + privs: ALL + state: present + type: database + roles: grafana diff --git a/grafana/templates/grafana.ini.j2 b/grafana/templates/grafana.ini.j2 index bbb00196406f57cc2c088ea7a3d89ca19fefeb7e..ac54026c0ea49ae6f95cc9392a4916c417ef4f9f 100644 --- a/grafana/templates/grafana.ini.j2 +++ b/grafana/templates/grafana.ini.j2 @@ -18,8 +18,14 @@ serve_from_sub_path = {{ grafana_serve_from_sub_path }} socket = /run/grafana/sock [database] -{% if grafana_database_url is defined %} -url = {{ grafana_database_url }} +{% if grafana_database is defined %} +type = {{ grafana_database.type }} +host = {{ grafana_database.host }} +name = {{ grafana_database.name }} +user = {{ grafana_database.user }} +{% if grafana_database.password is defined %} +password = """{{ grafana_database.password }}""" +{% endif %} {% endif %} [analytics]