175 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			YAML
		
	
	
	
			
		
		
	
	
			175 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			YAML
		
	
	
	
---
 | 
						|
- name: Deep 595 Error Investigation
 | 
						|
  hosts: pve_cluster
 | 
						|
  gather_facts: yes
 | 
						|
  tasks:
 | 
						|
    - name: Check PVE proxy detailed configuration
 | 
						|
      command: ps aux | grep pveproxy
 | 
						|
      register: pveproxy_processes
 | 
						|
 | 
						|
    - name: Display PVE proxy processes
 | 
						|
      debug:
 | 
						|
        msg: "{{ pveproxy_processes.stdout_lines }}"
 | 
						|
 | 
						|
    - name: Check PVE proxy configuration file
 | 
						|
      stat:
 | 
						|
        path: /etc/pveproxy.conf
 | 
						|
      register: proxy_config_file
 | 
						|
 | 
						|
    - name: Display proxy config file status
 | 
						|
      debug:
 | 
						|
        msg: "Proxy config file exists: {{ proxy_config_file.stat.exists }}"
 | 
						|
 | 
						|
    - name: Check PVE proxy logs for connection errors
 | 
						|
      command: journalctl -u pveproxy -n 50 --no-pager | grep -i "error\|fail\|refuse\|deny\|595"
 | 
						|
      register: proxy_error_logs
 | 
						|
      ignore_errors: yes
 | 
						|
 | 
						|
    - name: Display proxy error logs
 | 
						|
      debug:
 | 
						|
        msg: "{{ proxy_error_logs.stdout_lines }}"
 | 
						|
      when: proxy_error_logs.rc == 0
 | 
						|
 | 
						|
    - name: Check system logs for network errors
 | 
						|
      command: journalctl -n 100 --no-pager | grep -i "595\|no route\|network\|connection"
 | 
						|
      register: system_network_logs
 | 
						|
      ignore_errors: yes
 | 
						|
 | 
						|
    - name: Display system network logs
 | 
						|
      debug:
 | 
						|
        msg: "{{ system_network_logs.stdout_lines }}"
 | 
						|
      when: system_network_logs.rc == 0
 | 
						|
 | 
						|
    - name: Check network interface details
 | 
						|
      command: ip addr show
 | 
						|
      register: network_interfaces
 | 
						|
 | 
						|
    - name: Display network interfaces
 | 
						|
      debug:
 | 
						|
        msg: "{{ network_interfaces.stdout_lines }}"
 | 
						|
 | 
						|
    - name: Check routing table details
 | 
						|
      command: ip route show
 | 
						|
      register: routing_table
 | 
						|
 | 
						|
    - name: Display routing table
 | 
						|
      debug:
 | 
						|
        msg: "{{ routing_table.stdout_lines }}"
 | 
						|
 | 
						|
    - name: Check ARP table
 | 
						|
      command: arp -a
 | 
						|
      register: arp_table
 | 
						|
      ignore_errors: yes
 | 
						|
 | 
						|
    - name: Display ARP table
 | 
						|
      debug:
 | 
						|
        msg: "{{ arp_table.stdout_lines }}"
 | 
						|
      when: arp_table.rc == 0
 | 
						|
 | 
						|
    - name: Test connectivity with different methods
 | 
						|
      shell: |
 | 
						|
        echo "=== Testing connectivity to PVE ==="
 | 
						|
        echo "1. Ping test:"
 | 
						|
        ping -c 3 pve
 | 
						|
        echo "2. Telnet test:"
 | 
						|
        timeout 5 telnet pve 8006 || echo "Telnet failed"
 | 
						|
        echo "3. nc test:"
 | 
						|
        nc -zv pve 8006
 | 
						|
        echo "4. curl test:"
 | 
						|
        curl -k -s -o /dev/null -w "HTTP Status: %{http_code}, Time: %{time_total}s\n" https://pve:8006        
 | 
						|
      register: connectivity_tests
 | 
						|
      when: inventory_hostname != 'pve'
 | 
						|
 | 
						|
    - name: Display connectivity test results
 | 
						|
      debug:
 | 
						|
        msg: "{{ connectivity_tests.stdout_lines }}"
 | 
						|
      when: inventory_hostname != 'pve'
 | 
						|
 | 
						|
    - name: Check PVE proxy binding details
 | 
						|
      command: ss -tlnp | grep 8006
 | 
						|
      register: port_binding
 | 
						|
 | 
						|
    - name: Display port binding details
 | 
						|
      debug:
 | 
						|
        msg: "{{ port_binding.stdout_lines }}"
 | 
						|
 | 
						|
    - name: Check if PVE proxy is binding to specific interfaces
 | 
						|
      command: netstat -tlnp | grep 8006
 | 
						|
      register: netstat_binding
 | 
						|
      ignore_errors: yes
 | 
						|
 | 
						|
    - name: Display netstat binding details
 | 
						|
      debug:
 | 
						|
        msg: "{{ netstat_binding.stdout_lines }}"
 | 
						|
      when: netstat_binding.rc == 0
 | 
						|
 | 
						|
    - name: Check PVE cluster communication
 | 
						|
      command: pvecm status
 | 
						|
      register: cluster_status
 | 
						|
      ignore_errors: yes
 | 
						|
 | 
						|
    - name: Display cluster status
 | 
						|
      debug:
 | 
						|
        msg: "{{ cluster_status.stdout_lines }}"
 | 
						|
      when: cluster_status.rc == 0
 | 
						|
 | 
						|
    - name: Check PVE cluster nodes
 | 
						|
      command: pvecm nodes
 | 
						|
      register: cluster_nodes
 | 
						|
      ignore_errors: yes
 | 
						|
 | 
						|
    - name: Display cluster nodes
 | 
						|
      debug:
 | 
						|
        msg: "{{ cluster_nodes.stdout_lines }}"
 | 
						|
      when: cluster_nodes.rc == 0
 | 
						|
 | 
						|
    - 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' }}"
 | 
						|
      when: inventory_hostname == 'pve'
 | 
						|
 | 
						|
    - name: Check PVE proxy configuration in detail
 | 
						|
      shell: |
 | 
						|
        echo "=== PVE Proxy Configuration ==="
 | 
						|
        if [ -f /etc/pveproxy.conf ]; then
 | 
						|
          cat /etc/pveproxy.conf
 | 
						|
        else
 | 
						|
          echo "No /etc/pveproxy.conf found"
 | 
						|
        fi
 | 
						|
        echo "=== PVE Proxy Service Status ==="
 | 
						|
        systemctl status pveproxy --no-pager
 | 
						|
        echo "=== PVE Proxy Logs (last 20 lines) ==="
 | 
						|
        journalctl -u pveproxy -n 20 --no-pager        
 | 
						|
      register: pve_proxy_details
 | 
						|
 | 
						|
    - name: Display PVE proxy details
 | 
						|
      debug:
 | 
						|
        msg: "{{ pve_proxy_details.stdout_lines }}"
 | 
						|
 | 
						|
    - name: Check network connectivity from PVE to other nodes
 | 
						|
      shell: |
 | 
						|
        echo "=== Testing connectivity FROM PVE to other nodes ==="
 | 
						|
        for node in nuc12 xgp; do
 | 
						|
          if [ "$node" != "pve" ]; then
 | 
						|
            echo "Testing to $node:"
 | 
						|
            ping -c 2 $node
 | 
						|
            nc -zv $node 8006
 | 
						|
          fi
 | 
						|
        done        
 | 
						|
      register: pve_outbound_test
 | 
						|
      when: inventory_hostname == 'pve'
 | 
						|
 | 
						|
    - name: Display PVE outbound test results
 | 
						|
      debug:
 | 
						|
        msg: "{{ pve_outbound_test.stdout_lines }}"
 | 
						|
      when: inventory_hostname == 'pve'
 |