Update file main.yml

This commit is contained in:
Administrator 2025-11-18 05:37:29 +00:00
parent c7865b7030
commit be8c93f2b0

View File

@ -66,12 +66,21 @@
- /opt/pve_exporter/config - /opt/pve_exporter/config
become: yes become: yes
# Устанавливаем sudo для работы с become
- name: Ensure sudo is installed
apt:
name: sudo
state: present
become: yes
- name: Create Python virtual environment - name: Create Python virtual environment
command: command:
cmd: python3 -m venv /opt/pve_exporter/venv cmd: python3 -m venv /opt/pve_exporter/venv
creates: /opt/pve_exporter/venv/bin/python creates: /opt/pve_exporter/venv/bin/python
become: yes become: yes
become_user: pve_exporter become_user: pve_exporter
environment:
HOME: /opt/pve_exporter
- name: Upgrade pip in virtual environment - name: Upgrade pip in virtual environment
command: command:
@ -79,6 +88,8 @@
chdir: /opt/pve_exporter chdir: /opt/pve_exporter
become: yes become: yes
become_user: pve_exporter become_user: pve_exporter
environment:
HOME: /opt/pve_exporter
- name: Install prometheus-pve-exporter package - name: Install prometheus-pve-exporter package
command: command:
@ -89,7 +100,7 @@
environment: environment:
HOME: /opt/pve_exporter HOME: /opt/pve_exporter
- name: Deploy pve_exporter config - name: Deploy pve_exporter config (with vault secrets)
template: template:
src: pve_exporter_config.yml.j2 src: pve_exporter_config.yml.j2
dest: /opt/pve_exporter/config/config.yml dest: /opt/pve_exporter/config/config.yml
@ -98,6 +109,16 @@
mode: '0600' mode: '0600'
become: yes become: yes
# Проверяем конфиг перед запуском сервиса
- name: Verify pve_exporter config syntax
command: /opt/pve_exporter/venv/bin/pve_exporter --config /opt/pve_exporter/config/config.yml --test
become: yes
become_user: pve_exporter
register: config_test
changed_when: false
failed_when: config_test.rc != 0
ignore_errors: yes
- name: Create pve_exporter systemd service - name: Create pve_exporter systemd service
copy: copy:
content: | content: |
@ -115,6 +136,7 @@
--config /opt/pve_exporter/config/config.yml --config /opt/pve_exporter/config/config.yml
Restart=always Restart=always
RestartSec=10 RestartSec=10
Environment="HOME=/opt/pve_exporter"
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target
@ -122,13 +144,40 @@
mode: '0644' mode: '0644'
become: yes become: yes
- name: Enable and start pve_exporter - name: Reload systemd and start pve_exporter
systemd: systemd:
name: pve_exporter name: pve_exporter
enabled: yes enabled: yes
state: started state: started
daemon_reload: yes daemon_reload: yes
become: yes become: yes
register: service_start
failed_when: false
# Ждём 15 секунд для полного запуска
- name: Wait for pve_exporter to initialize
wait_for:
host: localhost
port: 9223
timeout: 30
state: started
delay: 5
register: port_check
failed_when: port_check.failed and service_start.status.ActiveState != "active"
become: yes
# Если порт недоступен — показываем логи для отладки
- name: Show pve_exporter logs if failed
command: journalctl -u pve_exporter -n 100 --no-pager
register: service_logs
changed_when: false
when: port_check.failed
become: yes
- name: Fail if pve_exporter is not running
fail:
msg: "pve_exporter failed to start. Check logs above."
when: port_check.failed
# ========== 4. RAID monitoring via storcli + node_exporter textfile ========== # ========== 4. RAID monitoring via storcli + node_exporter textfile ==========
- name: Ensure node_exporter textfile dir exists - name: Ensure node_exporter textfile dir exists