Update file main.yml
This commit is contained in:
parent
c7865b7030
commit
be8c93f2b0
@ -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
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user