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可以识别它。
作为参考,我使用this guide在S3上创建了一个git存储库。
欢迎任何黑客或解决方案。
发布于 2019-10-02 19:35:03
默认情况下,大多数工具使用Git的标准C命令行版本(即git二进制文件),而不是JGit ( jgit二进制文件)。听起来你在JGit中有一个插件或其他功能,可以让你使用amazon-s3方案,但是你没有一个通用的协议助手,可以让你做同样的事情。
这里有两个选择:要么将jgit符号链接到路径中的某个位置,要么为git找到并安装一个合适的协议助手。假设PATH的主目录中有一个名为bin的目录,请运行ln -s $(which jgit) ~/bin/git。然后,当您(或Ansible)调用git程序时,您将真正使用jgit,这将使程序正常工作。
话虽如此,你链接的文档表明JGit不支持Git子命令;如果是这样的话,如果ansible-pull使用这个子命令,那么你想要通过上面的命令做的事情是不可能的,你需要找到并安装一个用于常规pull的S3的等效协议助手。
https://stackoverflow.com/questions/58188679
复制相似问题