ansible-role-borg-backup/tasks/03_create_key.yml

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