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'
|