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