37 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			YAML
		
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			YAML
		
	
	
	
| ---
 | |
| - name: Copy SSH public key to PVE cluster nodes
 | |
|   hosts: pve_cluster
 | |
|   gather_facts: yes
 | |
|   tasks:
 | |
|     - name: Ensure .ssh directory exists
 | |
|       file:
 | |
|         path: /root/.ssh
 | |
|         state: directory
 | |
|         mode: '0700'
 | |
| 
 | |
|     - name: Add SSH public key to authorized_keys
 | |
|       authorized_key:
 | |
|         user: root
 | |
|         key: "{{ lookup('file', '~/.ssh/id_rsa.pub') }}"
 | |
|         state: present
 | |
|       ignore_errors: yes
 | |
| 
 | |
|     - name: Generate SSH key if it doesn't exist
 | |
|       command: ssh-keygen -t rsa -b 4096 -f /root/.ssh/id_rsa -N ""
 | |
|       when: ansible_ssh_key_add_result is failed
 | |
| 
 | |
|     - name: Add generated SSH public key to authorized_keys
 | |
|       authorized_key:
 | |
|         user: root
 | |
|         key: "{{ lookup('file', '/root/.ssh/id_rsa.pub') }}"
 | |
|         state: present
 | |
|       when: ansible_ssh_key_add_result is failed
 | |
| 
 | |
|     - name: Display SSH key fingerprint
 | |
|       command: ssh-keygen -lf /root/.ssh/id_rsa.pub
 | |
|       register: key_fingerprint
 | |
| 
 | |
|     - name: Show key fingerprint
 | |
|       debug:
 | |
|         msg: "SSH Key fingerprint: {{ key_fingerprint.stdout }}"
 |