146 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			YAML
		
	
	
	
			
		
		
	
	
			146 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			YAML
		
	
	
	
| ---
 | |
| - name: Unidirectional Access Diagnosis
 | |
|   hosts: pve_cluster
 | |
|   gather_facts: yes
 | |
|   tasks:
 | |
|     - name: Check PVE proxy binding configuration
 | |
|       command: ss -tlnp | grep :8006
 | |
|       register: pve_proxy_binding
 | |
| 
 | |
|     - name: Display PVE proxy binding
 | |
|       debug:
 | |
|         msg: "{{ pve_proxy_binding.stdout_lines }}"
 | |
| 
 | |
|     - name: Check PVE firewall status
 | |
|       command: pve-firewall status
 | |
|       register: firewall_status
 | |
| 
 | |
|     - name: Display firewall status
 | |
|       debug:
 | |
|         msg: "{{ firewall_status.stdout_lines }}"
 | |
| 
 | |
|     - name: Check PVE firewall rules
 | |
|       command: pve-firewall show
 | |
|       register: firewall_rules
 | |
|       ignore_errors: yes
 | |
| 
 | |
|     - name: Display firewall rules
 | |
|       debug:
 | |
|         msg: "{{ firewall_rules.stdout_lines }}"
 | |
|       when: firewall_rules.rc == 0
 | |
| 
 | |
|     - name: Check iptables rules
 | |
|       command: iptables -L -n
 | |
|       register: iptables_rules
 | |
|       ignore_errors: yes
 | |
| 
 | |
|     - name: Display iptables rules
 | |
|       debug:
 | |
|         msg: "{{ iptables_rules.stdout_lines }}"
 | |
|       when: iptables_rules.rc == 0
 | |
| 
 | |
|     - name: Check PVE proxy configuration
 | |
|       stat:
 | |
|         path: /etc/pveproxy.conf
 | |
|       register: proxy_config_stat
 | |
| 
 | |
|     - name: Display proxy config status
 | |
|       debug:
 | |
|         msg: "Proxy config exists: {{ proxy_config_stat.stat.exists }}"
 | |
| 
 | |
|     - name: Check PVE proxy logs
 | |
|       command: journalctl -u pveproxy -n 20 --no-pager
 | |
|       register: proxy_logs
 | |
|       ignore_errors: yes
 | |
| 
 | |
|     - name: Display proxy logs
 | |
|       debug:
 | |
|         msg: "{{ proxy_logs.stdout_lines }}"
 | |
|       when: proxy_logs.rc == 0
 | |
| 
 | |
|     - name: Test local access to PVE web
 | |
|       uri:
 | |
|         url: "https://localhost:8006"
 | |
|         method: GET
 | |
|         validate_certs: no
 | |
|         timeout: 10
 | |
|       register: local_access
 | |
|       ignore_errors: yes
 | |
| 
 | |
|     - name: Display local access result
 | |
|       debug:
 | |
|         msg: "Local access: {{ 'SUCCESS' if local_access.status == 200 else 'FAILED' }}"
 | |
| 
 | |
|     - name: Test access from other nodes to PVE
 | |
|       uri:
 | |
|         url: "https://pve:8006"
 | |
|         method: GET
 | |
|         validate_certs: no
 | |
|         timeout: 10
 | |
|       register: remote_access
 | |
|       ignore_errors: yes
 | |
|       when: inventory_hostname != 'pve'
 | |
| 
 | |
|     - name: Display remote access result
 | |
|       debug:
 | |
|         msg: "{{ inventory_hostname }} -> pve: {{ 'SUCCESS' if remote_access.status == 200 else 'FAILED' }}"
 | |
|       when: inventory_hostname != 'pve' and remote_access is defined
 | |
| 
 | |
|     - 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 network interfaces
 | |
|       command: ip addr show
 | |
|       register: network_interfaces
 | |
| 
 | |
|     - name: Display network interfaces
 | |
|       debug:
 | |
|         msg: "{{ network_interfaces.stdout_lines }}"
 | |
| 
 | |
|     - name: Check routing table
 | |
|       command: ip route show
 | |
|       register: routing_table
 | |
| 
 | |
|     - name: Display routing table
 | |
|       debug:
 | |
|         msg: "{{ routing_table.stdout_lines }}"
 | |
| 
 | |
|     - name: Test connectivity from PVE to other nodes
 | |
|       command: ping -c 3 {{ item }}
 | |
|       loop: "{{ groups['pve_cluster'] }}"
 | |
|       when: item != inventory_hostname
 | |
|       register: ping_tests
 | |
|       ignore_errors: yes
 | |
| 
 | |
|     - name: Display ping test results
 | |
|       debug:
 | |
|         msg: "{{ inventory_hostname }} -> {{ item.item }}: {{ 'SUCCESS' if item.rc == 0 else 'FAILED' }}"
 | |
|       loop: "{{ ping_tests.results }}"
 | |
|       when: ping_tests is defined
 | |
| 
 | |
|     - name: Check PVE proxy process details
 | |
|       command: ps aux | grep pveproxy
 | |
|       register: proxy_processes
 | |
| 
 | |
|     - name: Display proxy processes
 | |
|       debug:
 | |
|         msg: "{{ proxy_processes.stdout_lines }}"
 | |
| 
 | |
|     - name: Check PVE proxy configuration files
 | |
|       find:
 | |
|         paths: /etc/pve
 | |
|         patterns: "*.conf"
 | |
|         file_type: file
 | |
|       register: pve_config_files
 | |
| 
 | |
|     - name: Display PVE config files
 | |
|       debug:
 | |
|         msg: "{{ pve_config_files.files | map(attribute='path') | list }}"
 |