51 lines
1.6 KiB
YAML
51 lines
1.6 KiB
YAML
---
|
|
- name: Create ssh key
|
|
when:
|
|
- borg_install_method != "docker"
|
|
block:
|
|
- name: Create SSH key (if needed) for {{ borg_user }}
|
|
block:
|
|
- name: Ensure directory exist
|
|
ansible.builtin.file:
|
|
path: "{{ backup_user_info.home }}/.ssh/"
|
|
state: directory
|
|
mode: "0700"
|
|
owner: "{{ borg_user }}"
|
|
group: "{{ borg_group }}"
|
|
|
|
- name: Generate an OpenSSH keypair
|
|
when: not borg_ssh_private_key
|
|
community.crypto.openssh_keypair:
|
|
path: "{{ borg_ssh_key_file_path }}"
|
|
mode: "0600"
|
|
type: "{{ borg_ssh_key_type }}"
|
|
owner: "{{ borg_user }}"
|
|
group: "{{ borg_group }}"
|
|
|
|
- name: Generate public key from private key content # Also ensure priv key content is sound
|
|
when: borg_ssh_private_key
|
|
delegate_to: localhost
|
|
community.crypto.openssl_publickey:
|
|
path: "{{ borg_ssh_key_file_path }}.pub"
|
|
privatekey_content: "{{ borg_ssh_private_key }}"
|
|
register: public_key
|
|
|
|
- name: Copy provided OpenSSH private key
|
|
when: public_key.succeeded
|
|
ansible.builtin.copy:
|
|
content: "{{ borg_ssh_private_key }}"
|
|
dest: "{{ borg_ssh_key_file_path }}"
|
|
mode: "0600"
|
|
owner: "{{ borg_user }}"
|
|
group: "{{ borg_group }}"
|
|
|
|
- name: Read SSH key
|
|
ansible.builtin.slurp:
|
|
src: "{{ borg_ssh_key_file_path }}.pub"
|
|
register: backup_local_ssh_key
|
|
|
|
- name: Print key
|
|
ansible.builtin.debug:
|
|
msg: "The generated key is: {{ backup_local_ssh_key['content'] | b64decode }}"
|
|
...
|