4

开始学习 Ansible 并希望简化ansible-galaxy search nginx命令,但我得到:

ERROR! Unknown error when attempting to call Galaxy at 'https://galaxy.ansible.com/api/api': <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:852)> 

曾尝试使用ansible-galaxy --ignore-certs search nginxansible-galaxy -c search nginx但现在正在获得ansible-galaxy: error: unrecognized arguments: --ignore-certs展位。

操作系统:

发行商 ID:Ubuntu 描述:Ubuntu 18.04.5 LTS 版本:18.04 代号:bionic

Ansible 版本:

ansible 2.9.5
  config file = /home/maciej/projects/priv/ansible_nauka/packt_course/ansible.cfg
  configured module search path = ['/home/maciej/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/maciej/.local/lib/python3.6/site-packages/ansible
  executable location = /home/maciej/.local/bin/ansible
  python version = 3.6.9 (default, Jul 17 2020, 12:50:27) [GCC 8.4.0]
4

4 回答 4

9

我有同样的问题,但在 Mac OS X 上。

根本问题是您的 Python 环境没有找到/使用安装在您的操作系统上的默认根证书。这些根证书是安全连接(通过 TLS)与 Ansible Galaxy 所必需的。

对于 Mac OS X,我能够根据这个答案解决这个问题: 如何让 Python 使用来自 Mac OS TrustStore 的 CA 证书?

即通过运行脚本来安装证书,安装附带:

cd /Applications/Python\ 3.7/
./Install\ Certificates.command

对于 Ubuntu / Debian

更新:正如 Maciej 在接受的答案中指出的那样,可以重新生成证书并将其添加到环境中:

sudo update-ca-certificates --fresh
export SSL_CERT_DIR=/etc/ssl/certs

PS:我不建议使用--ignore-certs,这将跳过TLS连接中证书的验证,使连接不安全(允许中间人攻击

于 2020-11-05T17:20:57.637 回答
4

为我工作:

ansible-galaxy search --ignore-certs postgresql
于 2020-10-07T16:13:35.103 回答
2

回到这个问题……生活是最好的动力。对我有帮助的是:

sudo update-ca-certificates --fresh
export SSL_CERT_DIR=/etc/ssl/certs
于 2021-05-23T17:08:41.193 回答
0

对于 RHEL/CENTOS

您可能需要检查加密策略,如果策略设置为将来临时将其设置为默认值

sudo update-crypto-policies --set=DEFAULT

于 2022-02-04T17:54:48.887 回答