首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >私有GitHub存储库中可能存在银河集合依赖项SSH错误

私有GitHub存储库中可能存在银河集合依赖项SSH错误
EN

Stack Overflow用户
提问于 2021-05-17 06:07:17
回答 1查看 242关注 0票数 1

作为Ansible集合的新手,我希望我在尝试将一些旧的Ansible角色重构为使用私有GitHub存储库的集合时,遗漏了一些明显的东西。

我有2个链接帐户的GitHub设置。我将主个人帐户命名为GITHUB_AC_P。个人帐户链接到一个子组织帐户,我称之为GITHUB_AC_O。我可以在GitHub web UI中的这些帐户之间切换,并在~/.ssh/config中使用以下单个条目通过git客户端访问这两个帐户:

代码语言:javascript
复制
Host GITHUB_AC_P.github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa_github_REDACTED_GITHUB_A

我首先在account GITHUB_AC_O中名为ansible.common的新GitHub存储库中添加了Ansible Galaxy收集文件。我计划在其他Ansible Galaxy集合中重用这个集合。它目前只有一个角色和以下galaxy.yml文件:

代码语言:javascript
复制
namespace: REDACTED_NS
name: common
version: 0.0.1
description: "Common Ansible collection"
readme: README.md
authors:
  - REDACTED_AUTHOR

以下命令报告“已成功安装”,并且我在~/.ansible/collections/ansible_collections/REDACTED_NS/common中看到了该集合

代码语言:javascript
复制
ansible-galaxy collection install git@GITHUB_AC_P.github.com:GITHUB_AC_O/ansible.common.git,main

然后,我在一个名为ansible.harden_host的新GitHub存储库中创建了第二个Ansible Galaxy集合。这也在account GITHUB_AC_O中。它当前没有角色,并使用以下galaxy.yml文件引用上述公共集合(两个galaxy.yml文件中REDACTED_NS的值相同):

代码语言:javascript
复制
namespace: REDACTED_NS
name: harden_host
version: 0.0.1
description: "Ansible collection to harden hosts"
readme: README.md
authors:
  - REDACTED_AUTHOR
dependencies: {
  REDACTED_NS.common: git@GITHUB_AC_P.github.com:GITHUB_AC_O/ansible.common.git,main
}

但是当我运行以下命令时:

代码语言:javascript
复制
ansible-galaxy collection install --verbose git@GITHUB_AC_P.github.com:GITHUB_AC_O/ansible.harden_host.git,main

运行失败,并显示以下消息:

代码语言:javascript
复制
Starting galaxy collection install process
Process install dependency map
ERROR! Unknown error when attempting to call Galaxy at 'https://galaxy.ansible.com/api/': <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1123)>

为什么要尝试访问galaxy.ansible.com而不是我的GitHub帐户?

当我添加--ignore-certs并运行以下命令时:

代码语言:javascript
复制
ansible-galaxy collection install --ignore-certs git@GUTHUB_AC_P.github.com:GITHUB_AC_O/ansible.harden_host.git,main

它会失败,并显示以下不同的消息:

代码语言:javascript
复制
ERROR! Failed to find collection REDACTED_NS.common:git@GITHUB_AC_P.github.com:GITHUB_AC_O/ansible.common.git

我将这个错误中的URI (冒号的右边)粘贴到一个ansible-galaxy collection install命令中,以验证URI中是否没有输入错误。这样做效果很好。

字符串REDACTED_NS不等于GITHUB_AC_P或GITHUB_AC_O的值。

如果有人能解释一下这里出了什么问题,以及如何解决这个问题,我将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-17 15:09:50

解决了;答案似乎隐藏在Ansible的Using collections文档中的普通站点中,该文档表示对基于git的依赖项使用以下形式:

代码语言:javascript
复制
dependencies: {'git@github.com:organization/repo_name.git': 'devel'}

我使用的表单是针对Galaxy服务器的,因此它命中了galaxy.ansible.com (除非我用--server localhost覆盖了默认值)。

所以下面的形式是有效的(git repo后面跟着git reference):

代码语言:javascript
复制
namespace: REDACTED_NS
name: harden_host
version: 0.0.1
description: "Ansible collection to harden hosts"
readme: README.md
authors:
  - REDACTED_AUTHOR
dependencies: {
  'git@GITHUB_AC_P.github.com:GITHUB_AC_O/ansible.common.git': 'main'
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67561961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档