8 dest: /$XDG_CONFIG_HOME/
9 - name: Protect directory
11 path: $XDG_CONFIG_HOME/gnupg
14 - name: Get gnupg runtime folder name
15 shell: 'gpgconf --list-dirs socketdir | sed -e "s@$XDG_RUNTIME_DIR/gnupg/@@"'
16 register: gnupg_runtime_dir_cmd
19 - name: check existing secret key
20 shell: "gpg --list-secret-keys | grep '{{ gpg_useremail }}'"
25 - name: Ask for gpg password
26 when: gpgkeys.stdout == ""
28 - name: Ask for gpg password
30 prompt: "Chose gpg password"
32 register: gpg_password
33 - name: Confirm gpg password
35 prompt: "Confirm gpg password"
37 register: gpg_password_confirm
38 - name: check gpg password
40 that: gpg_password_confirm.user_input == gpg_password.user_input
41 - name: Generate gpg key
42 when: gpgkeys.stdout == ""
44 - name: Copy default template for gpg key generation
46 src: gen-key-script.j2
47 dest: "$XDG_CONFIG_HOME/gnupg/gen-key-script-{{ gpg_user }}"
50 - name: Generate gpg key
51 command: "gpg --batch --gen-key $XDG_CONFIG_HOME/gnupg/gen-key-script-{{ gpg_user }}"
54 - name: Remove template file
56 path: "$XDG_CONFIG_HOME/gnupg/gen-key-script-{{ gpg_user }}"
59 shell: "gpg -K --with-colons {{ gpg_useremail }} | grep '^grp' | cut -d':' -f10"
61 when: gpgkeys.stdout == ""
63 - notify add key to immae@immae.eu
64 - send key to immae@immae.eu
65 - notify add key to password store
66 - name: add keygrip to sshcontrol
68 line: "{{ keygrip.stdout }}"
70 dest: "$XDG_CONFIG_HOME/gnupg/sshcontrol"
73 when: keygrip is defined and "stdout" in keygrip and keygrip.stdout != ""
76 - name: Override the gpg socket directory
78 - name: Add systemd overrides
80 src: "systemd/{{ item }}.conf.j2"
81 dest: "$XDG_CONFIG_HOME/systemd/user/{{ item }}.socket.d/override.conf"
89 - name: Restart systemd units
94 name: "{{ item }}.socket"
95 loop: "{{ results.results|selectattr('changed')|map(attribute='item')|list }}"
96 - name: clone password store
97 register: clone_password_store
98 shell: "cd $(dirname $ANSIBLE_CONFIG ); git submodule update --init password_store"
99 changed_when: clone_password_store is defined and "stdout" in clone_password_store and clone_password_store.stdout != ""