Not complete, however lots of progress made.
Can now add datasources, however, adding dashboards currently doesn't work but should be fixed in the next commit.master
parent
a1b7627948
commit
3b1b7b402a
@ -0,0 +1,8 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
- name: Restart Grafana
|
||||||
|
ansible.builtin.service:
|
||||||
|
name: grafana-server
|
||||||
|
state: restarted
|
||||||
|
|
||||||
|
...
|
||||||
@ -1,3 +1,36 @@
|
|||||||
---
|
---
|
||||||
|
|
||||||
|
- name: Create dashboard provisioning file
|
||||||
|
ansible.builtin.template:
|
||||||
|
src: dashboards.yaml.j2
|
||||||
|
dest: "{{ grafana_server_paths_provisioning }}/dashboards/dashboards.yaml"
|
||||||
|
owner: root
|
||||||
|
group: grafana
|
||||||
|
mode: "0640"
|
||||||
|
when:
|
||||||
|
- grafana_server_dashboards is defined
|
||||||
|
|
||||||
|
- name: Create dashboard directories
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: "{{ grafana_server_paths_dashboards }}/{{ item.value.folder }}"
|
||||||
|
state: directory
|
||||||
|
owner: root
|
||||||
|
group: grafana
|
||||||
|
mode: "0750"
|
||||||
|
loop: "{{ grafana_server_dashboards | dict2items }}"
|
||||||
|
when:
|
||||||
|
- item.value.folder is defined
|
||||||
|
|
||||||
|
- name: Create dashboard JSON files
|
||||||
|
ansible.builtin.copy:
|
||||||
|
content: "{{ item.value.json }}"
|
||||||
|
dest: "{{ grafana_server_paths_dashboards }}/{{ item.value.folder | default('') }}/{{ item.key }}"
|
||||||
|
owner: root
|
||||||
|
group: grafana
|
||||||
|
mode: "0640"
|
||||||
|
notify: "Restart Grafana"
|
||||||
|
loop: "{{ grafana_server_dashboards | dict2items }}"
|
||||||
|
when:
|
||||||
|
- grafana_server_dashboards is defined
|
||||||
|
|
||||||
...
|
...
|
||||||
|
|||||||
@ -1,36 +1,28 @@
|
|||||||
---
|
---
|
||||||
|
|
||||||
- name: Set fact for Grafana URL when using HTTP
|
- name: Create datasources
|
||||||
ansible.builtin.set_fact:
|
ansible.builtin.template:
|
||||||
grafana_server_grafana_url: "http://localhost:{{ grafana_server_http_port }}"
|
src: "datasources/{{ item.value.type }}.yaml.j2"
|
||||||
when:
|
dest: "{{ grafana_server_paths_provisioning }}/datasources/{{ item.key }}.yaml"
|
||||||
- not grafana_server_enable_https | bool
|
owner: root
|
||||||
- grafana_server_grafana_url is undefined
|
group: grafana
|
||||||
|
mode: "0640"
|
||||||
- name: Set fact for Grafana URL when using HTTPS
|
notify: "Restart Grafana"
|
||||||
ansible.builtin.set_fact:
|
loop: "{{ grafana_server_datasources | dict2items }}"
|
||||||
grafana_server_grafana_url: "https://localhost:{{ grafana_server_http_port }}"
|
|
||||||
when:
|
when:
|
||||||
- grafana_server_enable_https | bool
|
- grafana_server_datasources is defined
|
||||||
- grafana_server_grafana_url is undefined
|
no_log: true
|
||||||
|
|
||||||
- name: Create datasources
|
- name: Delete datasources
|
||||||
community.grafana.grafana_datasource:
|
community.grafana.grafana_datasource:
|
||||||
grafana_url: "{{ grafana_server_grafana_url }}"
|
grafana_url: "{{ grafana_server_grafana_url }}"
|
||||||
grafana_user: "{{ grafana_server_admin_user }}"
|
grafana_user: "{{ grafana_server_admin_user }}"
|
||||||
grafana_password: "{{ grafana_server_admin_password }}"
|
grafana_password: "{{ grafana_server_admin_password }}"
|
||||||
org_id: 1
|
name: "{{ item }}"
|
||||||
name: "{{ item.key }}"
|
state: absent
|
||||||
ds_type: "{{ item.value.type }}"
|
notify: "Restart Grafana"
|
||||||
ds_url: "{{ item.value.url }}"
|
loop: "{{ grafana_server_datasources_to_delete }}"
|
||||||
database: "{{ item.value.database | default(omit) }}"
|
|
||||||
user: "{{ item.value.user | default(omit) }}"
|
|
||||||
sslmode: "{{ item.value.sslmode | default(omit) }}"
|
|
||||||
additional_json_data: "{{ item.value.additonal_json_data | default(omit) }}"
|
|
||||||
additional_secure_json_data: "{{ item.value.additional_secure_json_data | default(omit) }}"
|
|
||||||
enforce_secure_data: "{{ item.value.enforce_secure_data | default(false) }}"
|
|
||||||
loop: "{{ grafana_server_datasources | dict2items }}"
|
|
||||||
when:
|
when:
|
||||||
- grafana_server_datasources is defined
|
- grafana_server_datasources_to_delete is defined
|
||||||
|
|
||||||
...
|
...
|
||||||
|
|||||||
@ -0,0 +1,11 @@
|
|||||||
|
apiVersion: 1
|
||||||
|
|
||||||
|
{% if grafana_server_provisioning_folders_from_filesystem | bool %}
|
||||||
|
providers:
|
||||||
|
- name: dashboards
|
||||||
|
type: file
|
||||||
|
updateIntervalSeconds: {{ grafana_server_provisioning_dashboards_update_interval_seconds }}
|
||||||
|
options:
|
||||||
|
path: "{{ grafana_server_paths_dashboards }}"
|
||||||
|
foldersFromFilesStructure: true
|
||||||
|
{% endif %}
|
||||||
@ -0,0 +1,31 @@
|
|||||||
|
apiVersion: 1
|
||||||
|
|
||||||
|
datasources:
|
||||||
|
- name: {{ item.key }}
|
||||||
|
type: mysql
|
||||||
|
url: {{ item.value.url }}
|
||||||
|
user: {{ item.value.user }}
|
||||||
|
jsonData:
|
||||||
|
database: {{ item.value.database }}
|
||||||
|
{% if item.value.maxOpenConns is defined %}
|
||||||
|
maxOpenConns: {{ item.value.max_open_conns }}
|
||||||
|
{% else %}
|
||||||
|
maxOpenConns: 100
|
||||||
|
{% endif %}
|
||||||
|
{% if item.value.maxIdleConns is defined %}
|
||||||
|
maxIdleConns: {{ item.value.maxIdleConns }}
|
||||||
|
{% else %}
|
||||||
|
maxIdleConns: 100
|
||||||
|
{% endif %}
|
||||||
|
{% if (item.value.maxIdleConnsAuto is defined and item.value.maxIdleConnsAuto | bool) or item.value.maxIdleConnsAuto is undefined %}
|
||||||
|
maxIdleConnsAuto: true
|
||||||
|
{% else %}
|
||||||
|
maxIdleConnsAuto: false
|
||||||
|
{% endif %}
|
||||||
|
{% if item.value.connMaxLifetime is defined %}
|
||||||
|
connMaxLifetime: {{ item.value.connMaxLifetime }}
|
||||||
|
{% else %}
|
||||||
|
connMaxLifetime: 14400
|
||||||
|
{% endif %}
|
||||||
|
secureJsonData:
|
||||||
|
password: "{{ item.value.password }}"
|
||||||
Loading…
Reference in New Issue