如何仅使用 Ansible 导入 gnupg 公钥?

问题描述 投票:0回答:1

我正在使用 Ansible 角色 DebOps wpcli:https://docs.debops.org/en/stable-3.1/ansible/roles/wpcli/index.html

错误是:

TASK [debops.debops.wpcli : Verify and install wp-cli binary] ******************
fatal: [webserver]: FAILED! => changed=true 
  cmd: set -o nounset -o pipefail -o errexit && gpg --batch --decrypt --output /usr/local/src/wpcli/wp-cli-2.5.0.phar /usr/local/src/wpcli/wp-cli-2.5.0.phar.gpg && ( install --mode 755 --owner root --group root /usr/local/src/wpcli/wp-cli-2.5.0.phar /usr/local/bin/wp && install --mode 644 --owner root --group root /usr/local/src/wpcli/wp-cli-2.5.0.completion.bash /etc/bash_completion.d/wp-completion ) || ( rm -f /usr/local/src/wpcli/wp-cli-2.5.0.phar && exit 2 )
  delta: '0:00:00.092231'
  end: '2024-09-05 06:45:25.499750'
  msg: non-zero return code
  rc: 2
  start: '2024-09-05 06:45:25.407519'
  stderr: |-
    gpg: directory '/root/.gnupg' created
    gpg: keybox '/root/.gnupg/pubring.kbx' created
    gpg: Signature made Wed May 19 15:24:41 2021 UTC
    gpg:                using RSA key 63AF7AA15067C05616FDDD88A3A2E8F226F0BC06
    gpg:                issuer "[email protected]"
    gpg: Can't check signature: No public key
  stderr_lines: <omitted>
  stdout: ''
  stdout_lines: <omitted>

我已经知道如何使用普通的 Bash shell 修复此问题:无法检查签名:未找到公钥 我不想用 shell 命令来修复它。不使用 Ansible 的答案将被否决。

我的问题是:如何使用 Ansible 并且仅使用 Ansible 而仅使用 Ansible 来修复此错误?如果可以通过现有的 DebOps 角色来完成就更好了。

ansible
1个回答
0
投票

通过使用

apt_key module
模块

- name: apt key
  ansible.builtin.get_url:
    url: https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x63af7aa15067c05616fddd88a3a2e8f226f0bc06
    dest: /etc/apt/keyrings/myrepo.asc

- name: Add an apt key by id from a keyserver
  ansible.builtin.apt_key:
    keyserver: keyserver.ubuntu.com
    id: 0x63af7aa15067c05616fddd88a3a2e8f226f0bc06
© www.soinside.com 2019 - 2024. All rights reserved.