diff options
| author | Ahmed Abdelhalim <[email protected]> | 2025-11-08 23:36:18 +0100 |
|---|---|---|
| committer | Ahmed Abdelhalim <[email protected]> | 2025-11-09 01:47:00 +0100 |
| commit | 32dcaee33824464d33bcadff78d3c2958d79e959 (patch) | |
| tree | 2f8f8bbeab4e52da3a2da3fbec853bad4a2653bf /roles/gpg | |
| parent | 60d15b66150755c6b9ec415e45cb459fd3e646b8 (diff) | |
Add gpg public key import to gpg role
Diffstat (limited to 'roles/gpg')
| -rw-r--r-- | roles/gpg/meta/argument_specs.yml | 7 | ||||
| -rw-r--r-- | roles/gpg/tasks/main.yml | 12 |
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 |
