add tls support to datasources
This commit is contained in:
parent
dbb533424f
commit
5366264f44
3 changed files with 63 additions and 10 deletions
|
|
@ -6,5 +6,5 @@ grafana:
|
||||||
root_url: "https://localhost"
|
root_url: "https://localhost"
|
||||||
plugins:
|
plugins:
|
||||||
"grafana-piechart-panel": {}
|
"grafana-piechart-panel": {}
|
||||||
datasources: []
|
datasources: {}
|
||||||
dashboards: []
|
dashboards: {}
|
||||||
|
|
|
||||||
|
|
@ -51,22 +51,30 @@
|
||||||
method: GET
|
method: GET
|
||||||
status_code: 200
|
status_code: 200
|
||||||
|
|
||||||
|
- name: convert tls paths to data (datasources)
|
||||||
|
include_tasks: tls-path-to-data.yml
|
||||||
|
vars:
|
||||||
|
grafanakey: datasources
|
||||||
|
loop: "{{ grafana.datasources|dict2items }}"
|
||||||
|
|
||||||
- name: create data sources
|
- name: create data sources
|
||||||
loop: "{{ grafana.datasources }}"
|
loop: "{{ grafana.datasources|dict2items }}"
|
||||||
grafana_datasource:
|
grafana_datasource:
|
||||||
name: "{{ item.name }}"
|
name: "{{ item.key }}"
|
||||||
grafana_url: "http://127.0.0.1"
|
grafana_url: "http://127.0.0.1"
|
||||||
grafana_user: "admin"
|
grafana_user: "admin"
|
||||||
grafana_password: "{{ grafana.adminpw }}"
|
grafana_password: "{{ grafana.adminpw }}"
|
||||||
ds_type: "{{ item.ds_type }}"
|
ds_type: "{{ item.value.ds_type }}"
|
||||||
url: "{{ item.url }}"
|
url: "{{ item.value.url }}"
|
||||||
is_default: "{{ item.is_default }}"
|
is_default: "{{ item.value.is_default }}"
|
||||||
|
tls_ca_cert: "{{ item.value.tls_ca_cert|d(omit) }}"
|
||||||
|
tls_client_cert: "{{ item.value.tls_client_cert|d(omit) }}"
|
||||||
|
tls_client_key: "{{ item.value.tls_client_key|d(omit) }}"
|
||||||
|
|
||||||
- name: import dashboards
|
- name: import dashboards
|
||||||
loop: "{{ grafana.dashboards }}"
|
loop: "{{ grafana.dashboards||dict2items }}"
|
||||||
grafana_dashboard:
|
grafana_dashboard:
|
||||||
grafana_url: "http://127.0.0.1"
|
grafana_url: "http://127.0.0.1"
|
||||||
grafana_user: "admin"
|
grafana_user: "admin"
|
||||||
grafana_password: "{{ grafana.adminpw }}"
|
grafana_password: "{{ grafana.adminpw }}"
|
||||||
path: "{{ item.path }}"
|
path: "{{ item.value.path }}"
|
||||||
|
|
|
||||||
45
tasks/tls-path-to-data.yml
Normal file
45
tasks/tls-path-to-data.yml
Normal file
|
|
@ -0,0 +1,45 @@
|
||||||
|
- when:
|
||||||
|
- item.value.tls_ca_cert|d(False)
|
||||||
|
- item.value.tls_ca_cert is not search("-----.*-----")
|
||||||
|
block:
|
||||||
|
- name: slurp up ca_cert
|
||||||
|
slurp:
|
||||||
|
src: "{{ item.value.tls_ca_cert }}"
|
||||||
|
register: slurpfile
|
||||||
|
- name: replace string
|
||||||
|
set_fact:
|
||||||
|
grafana_inventory: "{{ grafana }}"
|
||||||
|
grafana_merge: '{ "{{ grafanakey }}": { "{{ item.key }}": { "tls_ca_cert": "{{ slurpfile.content|b64decode }}" } } }'
|
||||||
|
- name: merge into facts
|
||||||
|
set_fact:
|
||||||
|
grafana: "{{ {}|combine(grafana_inventory, (grafana_merge|replace('\n', '\\n')|from_json), recursive=True) }}"
|
||||||
|
- when:
|
||||||
|
- item.value.tls_client_cert|d(False)
|
||||||
|
- item.value.tls_client_cert is not search("-----.*-----")
|
||||||
|
block:
|
||||||
|
- name: slurp up client_cert
|
||||||
|
slurp:
|
||||||
|
src: "{{ item.value.tls_client_cert }}"
|
||||||
|
register: slurpfile
|
||||||
|
- name: replace string
|
||||||
|
set_fact:
|
||||||
|
grafana_inventory: "{{ grafana }}"
|
||||||
|
grafana_merge: '{ "{{ grafanakey }}": { "{{ item.key }}": { "tls_client_cert": "{{ slurpfile.content|b64decode }}" } } }'
|
||||||
|
- name: merge into facts
|
||||||
|
set_fact:
|
||||||
|
grafana: "{{ {}|combine(grafana_inventory, (grafana_merge|replace('\n', '\\n')|from_json), recursive=True) }}"
|
||||||
|
- when:
|
||||||
|
- item.value.tls_client_key|d(False)
|
||||||
|
- item.value.tls_client_key is not search("-----.*-----")
|
||||||
|
block:
|
||||||
|
- name: slurp up client_key
|
||||||
|
slurp:
|
||||||
|
src: "{{ item.value.tls_client_key }}"
|
||||||
|
register: slurpfile
|
||||||
|
- name: replace string
|
||||||
|
set_fact:
|
||||||
|
grafana_inventory: "{{ grafana }}"
|
||||||
|
grafana_merge: '{ "{{ grafanakey }}": { "{{ item.key }}": { "tls_client_key": "{{ slurpfile.content|b64decode }}" } } }'
|
||||||
|
- name: merge into facts
|
||||||
|
set_fact:
|
||||||
|
grafana: "{{ {}|combine(grafana_inventory, (grafana_merge|replace('\n', '\\n')|from_json), recursive=True) }}"
|
||||||
Loading…
Add table
Add a link
Reference in a new issue