--- - name: create ssh key pair (if needed) become: true community.crypto.openssh_keypair: path: "{{ weechat__home_directory }}/.ssh/id_ed25519" type: ed25519 owner: "{{ weechat__user }}" register: ssh_key_pair when: weechat__custom_gen_ssh_key_pair | bool - name: print ssh public key to user ansible.builtin.pause: prompt: | We generated a new ssh key pair for you. Please use the following public key as deployment key to your private git repository with your own weechat config. Private git repositorys are not public available and you need some sort of authorisation method to verify that you are allowed to clone your private repo. Your ssh public key come here... {{ ssh_key_pair.public_key }} Please be aware, that this role do not commit or push any local changes and you have to do this manually by yourself. when: - weechat__custom_gen_ssh_key_pair | bool - ssh_key_pair.changed - name: clone or update private git repository become: true block: - name: try to download/update git repo ansible.builtin.git: repo: "{{ weechat__custom_private_repo }}" dest: "{{ weechat__home_directory }}/.weechat" version: "{{ weechat__custom_config.version | default ('main') }}" accept_hostkey: true update: true ssh_opts: "-i {{ weechat__home_directory }}/.ssh/id_ed25519" rescue: - name: wait until you fixed remote git issues ansible.builtin.pause: prompt: "Please fix the issue with your git repository and try again" - name: try to download/update git repo again ansible.builtin.git: repo: "{{ weechat__custom_private_repo }}" dest: "{{ weechat__home_directory }}/.weechat" version: "{{ weechat__custom_config.version | default ('main') }}" accept_hostkey: true update: true ssh_opts: "-i {{ weechat__home_directory }}/.ssh/id_ed25519" when: not weechat__custom_private_repo | bool - name: "change git repo owner to {{ weechat__user }}" become: true ansible.builtin.file: path: "{{ weechat__home_directory }}/.weechat" recurse: true owner: "{{ weechat__user }}" when: not weechat__custom_private_repo | bool