mgmt/pve/complete-user-verification-...

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'