summaryrefslogtreecommitdiff
path: root/roles/monitoring/grafana/tasks/users.yml
diff options
context:
space:
mode:
Diffstat (limited to 'roles/monitoring/grafana/tasks/users.yml')
-rw-r--r--roles/monitoring/grafana/tasks/users.yml36
1 files changed, 36 insertions, 0 deletions
diff --git a/roles/monitoring/grafana/tasks/users.yml b/roles/monitoring/grafana/tasks/users.yml
new file mode 100644
index 00000000..695d34d8
--- /dev/null
+++ b/roles/monitoring/grafana/tasks/users.yml
@@ -0,0 +1,36 @@
+---
+- name: check if admin password is already set
+ check_mode: no
+ uri:
+ url: "{{ grafana_root_url | resolve_grafana_url(grafana_config_server) }}/api/user"
+ user: admin
+ password: "{{ grafana_admin_password }}"
+ force_basic_auth: true
+ body_format: json
+ status_code:
+ - 200
+ - 400
+ - 401
+ register: grafana_admin_user_info
+
+- name: set password for admin user
+ when: grafana_admin_user_info.status != 200
+ command: grafana-cli admin reset-admin-password --password-from-stdin
+ args:
+ stdin: "{{ grafana_admin_password }}"
+ stdin_add_newline: false
+
+- name: add additional users to grafana
+ loop: "{{ grafana_users | dict2items }}"
+ loop_control:
+ label: "{{ item.key }}"
+ community.grafana.grafana_user:
+ url: "{{ grafana_root_url | resolve_grafana_url(grafana_config_server) }}"
+ url_username: admin
+ url_password: "{{ grafana_admin_password }}"
+ name: "{{ item.value.name | default(omit) }}"
+ email: "{{ item.value.email | default(omit) }}"
+ login: "{{ item.key }}"
+ password: "{{ item.value.password }}"
+ is_admin: "{{ item.value.is_admin | default(False) }}"
+ state: present