install_prometheus.yml 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. # Copyright 2022 Dell Inc. or its subsidiaries. All Rights Reserved.
  2. #
  3. # Licensed under the Apache License, Version 2.0 (the "License");
  4. # you may not use this file except in compliance with the License.
  5. # You may obtain a copy of the License at
  6. #
  7. # http://www.apache.org/licenses/LICENSE-2.0
  8. #
  9. # Unless required by applicable law or agreed to in writing, software
  10. # distributed under the License is distributed on an "AS IS" BASIS,
  11. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. # See the License for the specific language governing permissions and
  13. # limitations under the License.
  14. ---
  15. - name: Download and untar prometheus stable version
  16. unarchive:
  17. src: "{{ prometheus_git_repo }}"
  18. dest: "{{ installation_dir }}"
  19. remote_src: yes
  20. - name: Copy prometheus executable to /usr/local/bin
  21. copy:
  22. src: "{{ prometheus_exec_path }}"
  23. dest: "{{ system_local_path }}"
  24. remote_src: yes
  25. mode: "{{ file_permission }}"
  26. - name: Configure prometheus for slurm exporter
  27. blockinfile:
  28. path: "{{ prometheus_config_file }}"
  29. insertafter: EOF
  30. mode: "{{ file_permission }}"
  31. block: |
  32. # SLURM resource manager:
  33. - job_name: 'my_slurm_exporter'
  34. scrape_interval: 30s
  35. scrape_timeout: 30s
  36. static_configs:
  37. - targets: ['localhost:{{ slurm_exporter_port }}']
  38. - name: Install & configure Nginx
  39. block:
  40. - name: Install Nginx
  41. package:
  42. name: nginx
  43. state: present
  44. when: ansible_facts['distribution'] != opensuse_os_name
  45. - name: Install Nginx
  46. zypper:
  47. name: nginx
  48. state: present
  49. when: ansible_facts['distribution'] == opensuse_os_name
  50. - name: Start and enable nginx service
  51. service:
  52. name: nginx
  53. state: restarted
  54. enabled: yes
  55. - name: Configure nginx.conf (1/2)
  56. replace:
  57. path: "../../k8s_start_services/templates/nginx.conf.j2"
  58. regexp: ' server_name .*'
  59. replace: " server_name {{ ansible_default_ipv4.address }};"
  60. delegate_to: localhost
  61. - name: Configure nginx.conf (2/2)
  62. replace:
  63. path: "../../k8s_start_services/templates/nginx.conf.j2"
  64. regexp: ' proxy_pass http://.*'
  65. replace: " proxy_pass {{ prometheus_ip }};"
  66. delegate_to: localhost
  67. - name: Load nginx conf
  68. template:
  69. src: "../../k8s_start_services/templates/nginx.conf.j2"
  70. dest: "{{ nginx_conf_file_path }}"
  71. mode: "{{ nginx_conf_file_mode }}"
  72. - name: Validate nginx conf file
  73. command: nginx -t
  74. changed_when: false
  75. - name: Start and enable nginx service
  76. service:
  77. name: nginx
  78. state: restarted
  79. enabled: yes
  80. when:
  81. - grafana_svc_ip != ""
  82. - grafana_svc_port != ""