102 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			YAML
		
	
	
	
			
		
		
	
	
			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
 |