From 6f51a68160f074d8e5e6a56f085e2e4bbb350034 Mon Sep 17 00:00:00 2001 From: nd Date: Sat, 2 Nov 2019 14:28:22 +0100 Subject: [PATCH] Initial commit --- defaults/main.yml | 6 ++++++ handlers/main.yml | 4 ++++ meta/main.yml | 3 +++ tasks/main.yml | 53 +++++++++++++++++++++++++++++++++++++++++++++++ vars/main.yml | 5 +++++ 5 files changed, 71 insertions(+) create mode 100644 defaults/main.yml create mode 100644 handlers/main.yml create mode 100644 meta/main.yml create mode 100644 tasks/main.yml create mode 100644 vars/main.yml diff --git a/defaults/main.yml b/defaults/main.yml new file mode 100644 index 0000000..8ab643c --- /dev/null +++ b/defaults/main.yml @@ -0,0 +1,6 @@ +grafana: + adminpw: "{{ lookup('password', '/dev/null') }}" + plugins: + "grafana-piechart-panel": {} + datasources: {} + dashboards: {} diff --git a/handlers/main.yml b/handlers/main.yml new file mode 100644 index 0000000..45dc421 --- /dev/null +++ b/handlers/main.yml @@ -0,0 +1,4 @@ +- name: restart grafana + service: + name: grafana-server + state: restarted diff --git a/meta/main.yml b/meta/main.yml new file mode 100644 index 0000000..cfcf207 --- /dev/null +++ b/meta/main.yml @@ -0,0 +1,3 @@ +--- +dependencies: +- packages diff --git a/tasks/main.yml b/tasks/main.yml new file mode 100644 index 0000000..eb3d45a --- /dev/null +++ b/tasks/main.yml @@ -0,0 +1,53 @@ +- name: install grafana + apt: + pkg: grafana + +- name: set admin password + command: + argv: + - grafana-cli + - admin + - reset-admin-password + - "{{ grafana.adminpw }}" + +- name: install grafana plugins + grafana_plugin: + name: "{{ item }}" + loop: "{{ grafana.plugins.keys()|list }}" + notify: restart grafana + +- name: update all grafana plugins + tags: update + command: grafana-cli plugins update-all + notify: restart grafana + +- name: "ensure grafana is started" + service: + name: grafana-server + enabled: true + state: started + +- name: "Check if grafana is accessible." + uri: + url: http://127.0.0.1:3000 + method: GET + status_code: 200 + +- name: create data sources + loop: "{{ grafana.datasources }}" + grafana_datasource: + name: "{{ item.name }}" + grafana_url: "http://127.0.0.1:3000" + grafana_user: "admin" + grafana_password: "{{ grafana.adminpw }}" + ds_type: "{{ item.ds_type }}" + url: "{{ item.url }}" + + +- name: import dashboards + loop: "{{ grafana.dashboards }}" + grafana_dashboard: + grafana_url: "http://127.0.0.1:3000" + grafana_user: "admin" + grafana_password: "{{ grafana.adminpw }}" + path: {{ item.path }} diff --git a/vars/main.yml b/vars/main.yml new file mode 100644 index 0000000..74518cf --- /dev/null +++ b/vars/main.yml @@ -0,0 +1,5 @@ +packages: + repos: + grafana: + url: "deb https://packages.grafana.com/oss/deb stable main" + key: "-----BEGIN PGP PUBLIC KEY BLOCK-----\nVersion: GnuPG v1\n\nmQENBFiHXVIBCADr3VDEAGpq9Sg/xrPVu1GGqWGXdbnTbbNKeveCtFHZz7/GSATW\niwiY1skvlAOBiIKCqJEji0rZZgd8WxuhdfugiCBk1hDTMWCpjI0P+YymV77jHjYB\njHrKNlhb+aLjEd9Gf2EtbKUT1fvGUkzlVrcRGSX/XR9MBZlgja7NIyuVbn3uwZQ4\njflWSNSlvMpohNxTFkrBFTRrCJXhbDLfCS46+so22CP3+1VQyqJ7/6RWK9v9KYdS\nAVNgILXMggSrMqha4WA1a/ktczVQXNtP8IuPxTdp9pNYsklOTmrFVeq3mXsvWh9Q\nlIhpYHIZlTZ5wVBq4wTRchsXC5MubIhz+ASDABEBAAG0GkdyYWZhbmEgPGluZm9A\nZ3JhZmFuYS5jb20+iQE4BBMBAgAiBQJYh11SAhsDBgsJCAcDAgYVCAIJCgsEFgID\nAQIeAQIXgAAKCRCMjDTFJAmMthxJB/9Id6JrwqRkJW+eSBb71FGQmRsJvNFR8J+3\nNPVhJNkTFFOM7TnjAMUIv+LYEURqGcceTNAN1aHq/7n/8ybXucCS0CnDYyNYpyVs\ntWJ3FOQK3jPrmziDCWPQATqMM/Z2auXVFWrDFqfh2xKZNjuix0w2nyuWB8U0CG2U\n89w+ksPJblGGU5xLPPzDQoAqyZXY3gpGGTkCuohMq2RWYbp/QJSQagYhQkKZoJhr\nXJlnw4At6R1A5UUPzDw6WJqMRkGrkieE6ApIgf1vZSmnLRpXkqquRTAEyGT8Pugg\nee6YkD19/LK6ED6gn32StY770U9ti560U7oRjrOPK/Kjp4+qBtkQuQENBFiHXVIB\nCACz4hO1g/4fKO9QWLcbSWpB75lbNgt1kHXP0UcW8TE0DIgqrifod09lC85adIz0\nzdhs+00lLqckM5wNbp2r+pd5rRaxOsMw2V+c/y1Pt3qZxupmPc5l5lL6jzbEVR9g\nygPaE+iabTk9Np2OZQ7Qv5gIDzivqK2mRHXaHTzoQn2dA/3xpFcxnen9dvu7LCpA\nCdScSj9/UIRKk9PHIgr2RJhcjzLx0u1PxN9MEqfIsIJUUgZOoDsr8oCs44PGGIMm\ncK1CKALLLiC4ZM58B56jRyXo18MqB6VYsC1X9wkcIs72thL3tThXO70oDGcoXzoo\nywAHBH63EzEyduInOhecDIKlABEBAAGJAR8EGAECAAkFAliHXVICGwwACgkQjIw0\nxSQJjLbWSwf/VIM5wEFBY4QLGUAfqfjDyfGXpcha58Y24Vv3n6MwJqnCIbTAaeWf\n30CZ/wHg3NNIMB7I31vgmMOEbHQdv0LPTi9TG205VQeehcpNtZRZQ0D8TIetbxyi\nEmmn9osig9U3/7jaAWBabE/9bGx4TF3eLlEH9wmFrNYeXvgRqmyqVoqhIMCNAAOY\nREYyHyy9mzr9ywkwl0aroBqhzKIPyFlatZy9oRKllY/CCKO9RJy4DZidLphuwzqU\nymdQ1sqe5nKvwG5GvcncPc3O7LMevDBWnpNNkgERnVxCqpm90TuE3ONbirnU4+/S\ntUsVU1DERc1fjOCnAm4pKIlNYphISIE7OQ==\n=0pMC\n-----END PGP PUBLIC KEY BLOCK-----"