# Copyright 2022 Dell Inc. or its subsidiaries. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. --- - name: Include k8s_start_services variables include_vars: ../../k8s_start_services/vars/main.yml - block: - name: Create prometheus datasource in grafana community.grafana.grafana_datasource: name: "hpc-prometheus-{{ ansible_default_ipv4.address }}" grafana_url: "http://{{ grafana_svc_ip }}:{{ grafana_svc_port }}" grafana_user: "{{ hostvars['127.0.0.1']['grafana_username'] }}" grafana_password: "{{ hostvars['127.0.0.1']['grafana_password'] }}" ds_type: prometheus ds_url: "http://{{ ansible_default_ipv4.address }}:{{ nginx_listen_port }}" access: direct delegate_to: localhost no_log: true register: create_slurm_prom_datasource rescue: - name: Create prometheus datasource in grafana failed fail: msg: "Error: {{ create_slurm_prom_datasource.msg }}" - name: Replace data source in slurm dashboard replace: path: "{{ role_path }}/files/{{ item }}" regexp: '"uid": "hpc.*' replace: '"uid": "hpc-prometheus-{{ ansible_default_ipv4.address }}"' with_items: "{{ slurm_dashboard_json_files }}" delegate_to: localhost - name: Replace title in slurm dashboard (1/2) replace: path: "{{ role_path }}/files/slurm-dashboard-node-exporter.json" regexp: '"title": "SLURM - Node Exporter Server Metrics.*' replace: '"title": "SLURM - Node Exporter Server Metrics - ({{ ansible_default_ipv4.address }})",' delegate_to: localhost - name: Replace title in slurm dashboard (2/2) replace: path: "{{ role_path }}/files/slurm-dashboard.json" regexp: '"title": "SLURM - CPUs/GPUs, Nodes, Jobs, Scheduler.*' replace: '"title": "SLURM - CPUs/GPUs, Nodes, Jobs, Scheduler ({{ ansible_default_ipv4.address }})",' delegate_to: localhost - block: - name: Import Slurm Grafana dashboards community.grafana.grafana_dashboard: grafana_url: "http://{{ grafana_svc_ip }}:{{ grafana_svc_port }}" grafana_user: "{{ hostvars['127.0.0.1']['grafana_username'] }}" grafana_password: "{{ hostvars['127.0.0.1']['grafana_password'] }}" state: present commit_message: Updated by ansible overwrite: yes path: "{{ role_path }}/files/{{ item }}" with_items: "{{ slurm_dashboard_json_files }}" delegate_to: localhost no_log: true register: import_prom_dashboards rescue: - name: Import K8s grafana dashboards failed fail: msg: "Error: {{ import_prom_dashboards.msg }}"