mirror of
https://github.com/roles-ansible/ansible_role_weechat.git
synced 2024-08-16 13:09:48 +02:00
107 lines
3.5 KiB
YAML
107 lines
3.5 KiB
YAML
---
|
|
- name: Create ssh key pair (if needed) # noqa: H1901
|
|
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: Add git repo to save.directory globally for root # noqa: H1901
|
|
become: true
|
|
community.general.git_config:
|
|
name: safe.directory
|
|
scope: global
|
|
value: "{{ weechat__home_directory }}/.weechat"
|
|
register: save_directory
|
|
|
|
- name: "Add git repo to save.directory globally for {{ weechat__user }}" # noqa: H1901
|
|
become: true
|
|
community.general.git_config:
|
|
file: "{{ weechat__home_directory }}/.gitconfig"
|
|
name: safe.directory
|
|
scope: file
|
|
value: "{{ weechat__home_directory }}/.weechat"
|
|
register: save_user_directory
|
|
|
|
- name: "Change git repo owner to {{ weechat__user }}"
|
|
become: true
|
|
ansible.builtin.file:
|
|
path: "{{ weechat__home_directory }}/.gitconfig"
|
|
recurse: false
|
|
owner: "{{ weechat__user }}"
|
|
mode: 'u=rwX,g=rX,o='
|
|
changed_when: save_user_directory.changed | bool
|
|
|
|
- name: "Change git repo owner to root"
|
|
become: true
|
|
ansible.builtin.file:
|
|
path: "{{ weechat__home_directory }}/.weechat"
|
|
recurse: true
|
|
owner: "root"
|
|
group: 'root'
|
|
mode: 'u=rwX,g=rX,o='
|
|
changed_when: ssh_key_pair.changed | bool or save_directory.changed | bool
|
|
when: not weechat__custom_private_repo | bool
|
|
|
|
- name: Clone or update private git repository
|
|
become: true
|
|
when: not weechat__custom_private_repo | bool
|
|
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"
|
|
|
|
- name: "Change git repo owner to {{ weechat__user }}"
|
|
become: true
|
|
ansible.builtin.file:
|
|
path: "{{ weechat__home_directory }}/.weechat"
|
|
recurse: true
|
|
owner: "{{ weechat__user }}"
|
|
group: 'root'
|
|
mode: 'u=rwX,g=rX,o='
|
|
changed_when: ssh_key_pair.changed | bool or save_directory.changed | bool
|
|
when: not weechat__custom_private_repo | bool
|