summaryrefslogtreecommitdiffstats
path: root/roles/gpg
diff options
context:
space:
mode:
authorAhmed Abdelhalim <[email protected]>2025-11-08 23:36:18 +0100
committerAhmed Abdelhalim <[email protected]>2025-11-09 01:47:00 +0100
commit32dcaee33824464d33bcadff78d3c2958d79e959 (patch)
tree2f8f8bbeab4e52da3a2da3fbec853bad4a2653bf /roles/gpg
parent60d15b66150755c6b9ec415e45cb459fd3e646b8 (diff)
Add gpg public key import to gpg role
Diffstat (limited to 'roles/gpg')
-rw-r--r--roles/gpg/meta/argument_specs.yml7
-rw-r--r--roles/gpg/tasks/main.yml12
2 files changed, 18 insertions, 1 deletions
diff --git a/roles/gpg/meta/argument_specs.yml b/roles/gpg/meta/argument_specs.yml
index 040853f6..f02299bc 100644
--- a/roles/gpg/meta/argument_specs.yml
+++ b/roles/gpg/meta/argument_specs.yml
@@ -3,4 +3,9 @@ argument_specs:
main:
short_description: "Install gpg and pinentry packages"
description: "Install gpg and pinentry packages"
- options: {}
+ options:
+ gpg_public_keys:
+ type: "list"
+ elements: "str"
+ required: false
+ description: "List of GPG public keys (ASCII armored) to import"
diff --git a/roles/gpg/tasks/main.yml b/roles/gpg/tasks/main.yml
index c16ec636..6419d88d 100644
--- a/roles/gpg/tasks/main.yml
+++ b/roles/gpg/tasks/main.yml
@@ -7,3 +7,15 @@
ansible.builtin.package:
name: "{{ gpg_packages }}"
state: "present"
+
+- name: "Import GPG public keys"
+ ansible.builtin.shell: |
+ set -euo pipefail
+ echo "{{ item }}" | gpg --import
+ args:
+ executable: /bin/bash
+ loop: "{{ gpg_public_keys }}"
+ when: gpg_public_keys is defined
+ register: gpg_import_result
+ changed_when: "'imported' in gpg_import_result.stderr"
+ failed_when: gpg_import_result.rc != 0 and 'already in secret keyring' not in gpg_import_result.stderr