blob: d1289f5ce9b4bf554fca3bef113c80329b8dedb8 (
plain) (
tree)
|
|
---
- name: Config files
synchronize:
recursive: yes
archive: no
checksum: yes
src: gnupg
dest: /$XDG_CONFIG_HOME/
- name: Protect directory
file:
path: $XDG_CONFIG_HOME/gnupg
state: directory
mode: 0700
- name: Get gnupg runtime folder name
shell: 'gpgconf --list-dirs socketdir | sed -e "s@$XDG_RUNTIME_DIR/gnupg/@@"'
register: gnupg_runtime_dir_cmd
changed_when: false
- name: check existing secret key
shell: "gpg --list-secret-keys | grep '{{ gpg_useremail }}'"
changed_when: false
ignore_errors: true
register: gpgkeys
- name: ask for gpg password
pause:
prompt: "Chose gpg password"
echo: false
register: gpg_password
when: gpgkeys is defined and "stdout" in gpgkeys and gpgkeys.stdout == ""
- name: confirm gpg password
pause:
prompt: "Confirm gpg password"
echo: false
register: gpg_password_confirm
when: gpgkeys is defined and "stdout" in gpgkeys and gpgkeys.stdout == ""
- name: check gpg password
assert:
that: gpg_password_confirm.user_input == gpg_password.user_input
when: gpgkeys is defined and "stdout" in gpgkeys and gpgkeys.stdout == ""
- name: copy default template for gpg key generation
template:
src: gen-key-script.j2
dest: "$XDG_CONFIG_HOME/gnupg/gen-key-script-{{ gpg_user }}"
mode: 0600
no_log: true
when: gpgkeys is defined and "stdout" in gpgkeys and gpgkeys.stdout == ""
- name: generate gpg key
command: "gpg --batch --gen-key $XDG_CONFIG_HOME/gnupg/gen-key-script-{{ gpg_user }}"
when: gpgkeys is defined and "stdout" in gpgkeys and gpgkeys.stdout == ""
register: genkey
- name: remove template file
file:
path: "$XDG_CONFIG_HOME/gnupg/gen-key-script-{{ gpg_user }}"
state: absent
when: gpgkeys is defined and "stdout" in gpgkeys and gpgkeys.stdout == ""
- name: get keygrip
shell: "gpg -K --with-colons {{ gpg_useremail }} | grep '^grp' | cut -d':' -f10"
register: keygrip
when: gpgkeys is defined and "stdout" in gpgkeys and gpgkeys.stdout == ""
notify:
- notify add key to immae@immae.eu
- send key to immae@immae.eu
- notify add key to password store
- name: add keygrip to sshcontrol
lineinfile:
line: "{{ keygrip.stdout }}"
insertafter: EOF
dest: "$XDG_CONFIG_HOME/gnupg/sshcontrol"
create: true
state: present
when: keygrip is defined and "stdout" in keygrip and keygrip.stdout != ""
notify:
- restart gpg-agent
- name: Add systemd overrides
template:
src: "systemd/{{ item }}.conf.j2"
dest: "$XDG_CONFIG_HOME/systemd/user/{{ item }}.socket.d/override.conf"
register: results
loop:
- dirmngr
- gpg-agent
- gpg-agent-browser
- gpg-agent-extra
- gpg-agent-ssh
- name: Restart systemd units
systemd:
daemon_reload: true
scope: user
state: restarted
name: "{{ item }}.socket"
loop: "{{ results.results|selectattr('changed')|map(attribute='item')|list }}"
- name: clone password store
register: clone_password_store
shell: "cd $(dirname $ANSIBLE_CONFIG ); git submodule update --init password_store"
changed_when: clone_password_store is defined and "stdout" in clone_password_store and clone_password_store.stdout != ""
|