0

ansible-pull 命令如下所示:

ansible-pull common.yml -C develop -U $REPO -fi localhost

如果我使用REPO="ssh://git@github.com/xyz/xyz.git",它工作正常。

但是,如果我使用REPO="amazon-s3://.jgit@xyz-bucket/xyz/xyz.git",它显然不能正常工作,因为amazon-s3它不是协议,只能jgit识别它。

作为参考,我正在使用本指南在 S3 上创建一个 git 存储库。

欢迎任何黑客或解决方案。

4

1 回答 1

0

默认情况下,大多数工具使用标准 C 命令行版本的 Git(即git二进制文件)而不是 JGit(jgit二进制文件)。听起来您在 JGit 中有一个插件或其他功能允许您使用该amazon-s3方案,但是您没有一个通用的 Git 协议助手来允许您做同样的事情。

你有两个选择:要么符号链接jgitgitPATH 中的某个位置,要么为 Git 找到并安装合适的协议助手。假设您bin在 PATH 的主目录中有一个名为的目录,请运行ln -s $(which jgit) ~/bin/git. 然后,当您(或 Ansible)调用git程序时,您将真正使用jgit,这将使事情正常工作。

话虽如此,您链接到的文档指出 JGit 不支持该pull子命令;如果是这样,并且如果ansible-pull使用该子命令,那么使用上述命令无法实现您想要做的事情,您需要为常规 Git 找到并安装 S3 的等效协议帮助程序。

于 2019-10-02T11:35:03.293 回答