mgmt/pve/copy-ssh-keys.yml

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 }}"