如何用ansible处理percona密钥服务器

如何用ansible处理percona密钥服务器,ansible,apt,percona,Ansible,Apt,Percona,我一直在尝试在ansible中创建percona角色,但失败了。我不会真的说失败,但它没有按计划工作。下面是该角色的一个片段 运行此命令后,我出现以下错误: failed: [192.168.56.107] => {"cmd": "apt-key adv --keyserver keys.gnupg.net --recv 1C4CBDCDCD2EFD2A", "failed": true, "rc": 2} stderr: gpg: requesting key CD2EFD2A fro

我一直在尝试在ansible中创建percona角色,但失败了。我不会真的说失败,但它没有按计划工作。下面是该角色的一个片段


运行此命令后,我出现以下错误:

failed: [192.168.56.107] => {"cmd": "apt-key adv --keyserver keys.gnupg.net --recv 1C4CBDCDCD2EFD2A", "failed": true, "rc": 2}
stderr: gpg: requesting key CD2EFD2A from hkp server keys.gnupg.net
gpg: no valid OpenPGP data found.
gpg: Total number processed: 0
正如您所见,ansible执行以下命令:
apt key adv--keyserver keys.gnupg.net--recv 1C4CBDCDCD2EFD2A
,同时执行percona实际运行、测试和推荐的命令 is
apt key adv--keyserver keys.gnupg.net--recv keys 1C4CBDCDCD2EFD2A
。命令之间有区别,前者只是--recv,后者是--recv键。我不知道如何让ansible运行这个命令,也不知道如何使用ansible命令模块本身

在percona下载页面上也可以找到该url,该url可用于apt_密钥模块,而不是密钥服务器

我感兴趣的是,是否有可能让ansible使用--recv键运行实际的apt_键命令,因为apt_键模块显示了它使用--recv构建命令行,但没有提到--recv键,所以看起来您无法按您想要的方式使用此模块。我建议Ansible团队要求他们支持这面旗帜

同时,您应该能够通过命令模块手动调用apt key。该命令实际上与调试输出显示的内容相同:

 - name: call apt_key manually
   command: apt-key adv --keyserver keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A

以下命令应适用于您:

- apt_key: url=http://www.percona.com/redir/downloads/RPM-GPG-KEY-percona
           state=present

Url是我第一次尝试的选项,但命令是我最后使用的,因为使用它更自然use@blacksensei您并没有提到在原始问题中使用了url参数。此外,当本机模块可用时,使用“命令”模块通常是一种反模式。最后,当您运行命令时,它将始终显示“已更改”状态,其中as
apt_key
模块将根据是否执行了某项操作来显示正确的已更改/确定结果。很抱歉,沟通错误。在我的帖子中,我试着这样说:“percona下载页面上也有这个url,它指向repo密钥,可以在apt_密钥模块中使用,而不是在keyserver中使用。”。现在,命令作为一种反模式对我来说真的很新鲜。我会做更多的搜索,如果是的话,接受你的答案。
- apt_key: url=http://www.percona.com/redir/downloads/RPM-GPG-KEY-percona
           state=present