48 lines
1.9 KiB
YAML
48 lines
1.9 KiB
YAML
|
|
---
|
||
|
|
- name: Install and configure Grafana (with health checks)
|
||
|
|
hosts: grafana
|
||
|
|
become: yes
|
||
|
|
vars:
|
||
|
|
grafana_version: "12.3.2"
|
||
|
|
grafana_admin_password: "admin"
|
||
|
|
|
||
|
|
tasks:
|
||
|
|
- name: Include Grafana role
|
||
|
|
include_role:
|
||
|
|
name: grafana
|
||
|
|
|
||
|
|
- name: Final verification from control node
|
||
|
|
delegate_to: localhost
|
||
|
|
run_once: yes
|
||
|
|
block:
|
||
|
|
- name: Wait for Grafana to be fully ready
|
||
|
|
pause:
|
||
|
|
seconds: 30
|
||
|
|
prompt: "Waiting for Grafana to complete initialization..."
|
||
|
|
|
||
|
|
- name: Test Grafana access from control node
|
||
|
|
uri:
|
||
|
|
url: "http://{{ hostvars[groups['grafana'][0]]['ansible_default_ipv4']['address'] | default(groups['grafana'][0]) }}:3000/api/health"
|
||
|
|
method: GET
|
||
|
|
status_code: 200
|
||
|
|
timeout: 30
|
||
|
|
register: final_check
|
||
|
|
until: final_check.status == 200
|
||
|
|
retries: 12 # 12 попыток * 5 секунд = 60 секунд
|
||
|
|
delay: 5
|
||
|
|
|
||
|
|
- name: Display final success message
|
||
|
|
debug:
|
||
|
|
msg: |
|
||
|
|
🎉 Grafana успешно установлена и готова к работе!
|
||
|
|
|
||
|
|
Доступ по адресу: http://{{ hostvars[groups['grafana'][0]]['ansible_default_ipv4']['address'] | default(groups['grafana'][0]) }}:3000
|
||
|
|
Логин: admin
|
||
|
|
Пароль: {{ grafana_admin_password }}
|
||
|
|
|
||
|
|
Для проверки выполните команду:
|
||
|
|
curl http://{{ hostvars[groups['grafana'][0]]['ansible_default_ipv4']['address'] | default(groups['grafana'][0]) }}:3000/api/health
|
||
|
|
|
||
|
|
Или откройте в браузере:
|
||
|
|
http://{{ hostvars[groups['grafana'][0]]['ansible_default_ipv4']['address'] | default(groups['grafana'][0]) }}:3000
|