177 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			YAML
		
	
	
	
			
		
		
	
	
			177 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			YAML
		
	
	
	
---
 | 
						|
- name: Complete User Verification Test for 595 Error
 | 
						|
  hosts: pve_cluster
 | 
						|
  gather_facts: yes
 | 
						|
  tasks:
 | 
						|
    - name: Test web access from xgp to pve
 | 
						|
      uri:
 | 
						|
        url: "https://pve:8006"
 | 
						|
        method: GET
 | 
						|
        validate_certs: no
 | 
						|
        timeout: 10
 | 
						|
      register: xgp_to_pve_test
 | 
						|
      ignore_errors: yes
 | 
						|
      when: inventory_hostname == 'xgp'
 | 
						|
 | 
						|
    - name: Display xgp to pve test result
 | 
						|
      debug:
 | 
						|
        msg: "xgp -> pve web access: {{ 'SUCCESS' if xgp_to_pve_test.status == 200 else 'FAILED' }} (Status: {{ xgp_to_pve_test.status | default('N/A') }})"
 | 
						|
      when: inventory_hostname == 'xgp'
 | 
						|
 | 
						|
    - name: Test web access from nuc12 to pve
 | 
						|
      uri:
 | 
						|
        url: "https://pve:8006"
 | 
						|
        method: GET
 | 
						|
        validate_certs: no
 | 
						|
        timeout: 10
 | 
						|
      register: nuc12_to_pve_test
 | 
						|
      ignore_errors: yes
 | 
						|
      when: inventory_hostname == 'nuc12'
 | 
						|
 | 
						|
    - name: Display nuc12 to pve test result
 | 
						|
      debug:
 | 
						|
        msg: "nuc12 -> pve web access: {{ 'SUCCESS' if nuc12_to_pve_test.status == 200 else 'FAILED' }} (Status: {{ nuc12_to_pve_test.status | default('N/A') }})"
 | 
						|
      when: inventory_hostname == 'nuc12'
 | 
						|
 | 
						|
    - name: Test local web access on pve
 | 
						|
      uri:
 | 
						|
        url: "https://localhost:8006"
 | 
						|
        method: GET
 | 
						|
        validate_certs: no
 | 
						|
        timeout: 10
 | 
						|
      register: pve_local_test
 | 
						|
      ignore_errors: yes
 | 
						|
      when: inventory_hostname == 'pve'
 | 
						|
 | 
						|
    - name: Display pve local test result
 | 
						|
      debug:
 | 
						|
        msg: "pve local web access: {{ 'SUCCESS' if pve_local_test.status == 200 else 'FAILED' }} (Status: {{ pve_local_test.status | default('N/A') }})"
 | 
						|
      when: inventory_hostname == 'pve'
 | 
						|
 | 
						|
    - name: Check PVE cluster status
 | 
						|
      shell: |
 | 
						|
        echo "=== PVE Cluster Status ==="
 | 
						|
        pvecm status
 | 
						|
        echo "=== PVE Cluster Nodes ==="
 | 
						|
        pvecm nodes
 | 
						|
        echo "=== PVE Cluster Quorum ==="
 | 
						|
        pvecm quorum status        
 | 
						|
      register: cluster_status
 | 
						|
      ignore_errors: yes
 | 
						|
 | 
						|
    - name: Display cluster status
 | 
						|
      debug:
 | 
						|
        msg: "{{ cluster_status.stdout_lines }}"
 | 
						|
 | 
						|
    - name: Check PVE services status
 | 
						|
      shell: |
 | 
						|
        echo "=== PVE Services Status ==="
 | 
						|
        systemctl is-active pve-cluster pveproxy pvedaemon pvestatd
 | 
						|
        echo "=== PVE Proxy Status ==="
 | 
						|
        systemctl status pveproxy --no-pager -l        
 | 
						|
      register: pve_services_status
 | 
						|
 | 
						|
    - name: Display PVE services status
 | 
						|
      debug:
 | 
						|
        msg: "{{ pve_services_status.stdout_lines }}"
 | 
						|
 | 
						|
    - name: Check recent error logs
 | 
						|
      shell: |
 | 
						|
        echo "=== Recent Error Logs ==="
 | 
						|
        journalctl -n 50 --no-pager | grep -i "error\|fail\|refuse\|deny\|timeout\|595"
 | 
						|
        echo "=== PVE Proxy Error Logs ==="
 | 
						|
        journalctl -u pveproxy -n 20 --no-pager | grep -i "error\|fail\|refuse\|deny"
 | 
						|
        echo "=== PVE Status Daemon Error Logs ==="
 | 
						|
        journalctl -u pvestatd -n 20 --no-pager | grep -i "error\|fail\|refuse\|deny"        
 | 
						|
      register: error_logs
 | 
						|
      ignore_errors: yes
 | 
						|
 | 
						|
    - name: Display error logs
 | 
						|
      debug:
 | 
						|
        msg: "{{ error_logs.stdout_lines }}"
 | 
						|
 | 
						|
    - name: Test InfluxDB connection
 | 
						|
      shell: |
 | 
						|
        echo "=== Testing InfluxDB Connection ==="
 | 
						|
        nc -zv 192.168.31.3 8086
 | 
						|
        echo "=== Testing InfluxDB HTTP ==="
 | 
						|
        curl -s -o /dev/null -w "HTTP Status: %{http_code}\n" http://192.168.31.3:8086/ping        
 | 
						|
      register: influxdb_test
 | 
						|
      ignore_errors: yes
 | 
						|
 | 
						|
    - name: Display InfluxDB test results
 | 
						|
      debug:
 | 
						|
        msg: "{{ influxdb_test.stdout_lines }}"
 | 
						|
 | 
						|
    - name: Check network connectivity between nodes
 | 
						|
      shell: |
 | 
						|
        echo "=== Network Connectivity Test ==="
 | 
						|
        for node in nuc12 xgp pve; do
 | 
						|
          if [ "$node" != "{{ inventory_hostname }}" ]; then
 | 
						|
            echo "Testing connectivity to $node:"
 | 
						|
            ping -c 2 $node
 | 
						|
            nc -zv $node 8006
 | 
						|
          fi
 | 
						|
        done        
 | 
						|
      register: network_connectivity
 | 
						|
 | 
						|
    - name: Display network connectivity results
 | 
						|
      debug:
 | 
						|
        msg: "{{ network_connectivity.stdout_lines }}"
 | 
						|
 | 
						|
    - name: Check PVE proxy port binding
 | 
						|
      shell: |
 | 
						|
        echo "=== PVE Proxy Port Binding ==="
 | 
						|
        ss -tlnp | grep 8006
 | 
						|
        echo "=== PVE Proxy Process ==="
 | 
						|
        ps aux | grep pveproxy | grep -v grep        
 | 
						|
      register: pve_proxy_binding
 | 
						|
 | 
						|
    - name: Display PVE proxy binding
 | 
						|
      debug:
 | 
						|
        msg: "{{ pve_proxy_binding.stdout_lines }}"
 | 
						|
 | 
						|
    - name: Test PVE API access
 | 
						|
      uri:
 | 
						|
        url: "https://localhost:8006/api2/json/version"
 | 
						|
        method: GET
 | 
						|
        validate_certs: no
 | 
						|
        timeout: 10
 | 
						|
      register: pve_api_test
 | 
						|
      ignore_errors: yes
 | 
						|
 | 
						|
    - name: Display PVE API test result
 | 
						|
      debug:
 | 
						|
        msg: "PVE API access: {{ 'SUCCESS' if pve_api_test.status == 200 else 'FAILED' }} (Status: {{ pve_api_test.status | default('N/A') }})"
 | 
						|
 | 
						|
    - name: Check system resources
 | 
						|
      shell: |
 | 
						|
        echo "=== System Resources ==="
 | 
						|
        free -h
 | 
						|
        echo "=== Load Average ==="
 | 
						|
        uptime
 | 
						|
        echo "=== Disk Usage ==="
 | 
						|
        df -h | head -5        
 | 
						|
      register: system_resources
 | 
						|
 | 
						|
    - name: Display system resources
 | 
						|
      debug:
 | 
						|
        msg: "{{ system_resources.stdout_lines }}"
 | 
						|
 | 
						|
    - name: Final verification test
 | 
						|
      shell: |
 | 
						|
        echo "=== Final Verification Test ==="
 | 
						|
        echo "Testing web access with curl:"
 | 
						|
        curl -k -s -o /dev/null -w "HTTP Status: %{http_code}, Time: %{time_total}s\n" https://pve:8006
 | 
						|
        echo "Testing with different hostnames:"
 | 
						|
        curl -k -s -o /dev/null -w "pve.tailnet-68f9.ts.net: %{http_code}\n" https://pve.tailnet-68f9.ts.net:8006
 | 
						|
        curl -k -s -o /dev/null -w "100.71.59.40: %{http_code}\n" https://100.71.59.40:8006
 | 
						|
        curl -k -s -o /dev/null -w "192.168.31.4: %{http_code}\n" https://192.168.31.4:8006        
 | 
						|
      register: final_verification
 | 
						|
      when: inventory_hostname != 'pve'
 | 
						|
 | 
						|
    - name: Display final verification results
 | 
						|
      debug:
 | 
						|
        msg: "{{ final_verification.stdout_lines }}"
 | 
						|
      when: inventory_hostname != 'pve'
 |