mgmt/pve/pve-web-fix.yml

102 lines
2.7 KiB
YAML

---
- name: PVE Web Interface Fix
hosts: pve
gather_facts: yes
tasks:
- name: Check PVE web service status
systemd:
name: pveproxy
state: started
register: pveproxy_status
- name: Display PVE proxy status
debug:
msg: "PVE Proxy Status: {{ pveproxy_status.status.ActiveState }}"
- name: Check if port 8006 is listening
wait_for:
port: 8006
host: "{{ ansible_default_ipv4.address }}"
timeout: 5
register: port_check
ignore_errors: yes
- name: Display port status
debug:
msg: "Port 8006: {{ 'OPEN' if port_check.rc == 0 else 'CLOSED' }}"
- name: Restart PVE proxy service
systemd:
name: pveproxy
state: restarted
register: restart_result
- name: Display restart result
debug:
msg: "PVE Proxy restarted: {{ restart_result.changed }}"
- name: Wait for service to be ready
wait_for:
port: 8006
host: "{{ ansible_default_ipv4.address }}"
timeout: 30
- name: Test local web access
uri:
url: "https://localhost:8006"
method: GET
validate_certs: no
timeout: 10
register: local_test
ignore_errors: yes
- name: Display local test result
debug:
msg: "Local web access: {{ 'SUCCESS' if local_test.status == 200 else 'FAILED' }}"
- name: Test external web access
uri:
url: "https://{{ ansible_default_ipv4.address }}:8006"
method: GET
validate_certs: no
timeout: 10
register: external_test
ignore_errors: yes
- name: Display external test result
debug:
msg: "External web access: {{ 'SUCCESS' if external_test.status == 200 else 'FAILED' }}"
- name: Test Tailscale web access
uri:
url: "https://{{ inventory_hostname }}:8006"
method: GET
validate_certs: no
timeout: 10
register: tailscale_test
ignore_errors: yes
- name: Display Tailscale test result
debug:
msg: "Tailscale web access: {{ 'SUCCESS' if tailscale_test.status == 200 else 'FAILED' }}"
- name: Check PVE logs for errors
command: journalctl -u pveproxy -n 10 --no-pager
register: pve_logs
ignore_errors: yes
- name: Display PVE logs
debug:
msg: "{{ pve_logs.stdout_lines }}"
when: pve_logs.rc == 0
- name: Check system logs for network errors
command: journalctl -n 20 --no-pager | grep -i "route\|network\|connection\|error"
register: system_logs
ignore_errors: yes
- name: Display system logs
debug:
msg: "{{ system_logs.stdout_lines }}"
when: system_logs.rc == 0